@surething/cockpit 1.0.191 → 1.0.192

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 (846) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +15 -13
  3. package/.next-prod/build-manifest.json +5 -5
  4. package/.next-prod/diagnostics/framework.json +1 -1
  5. package/.next-prod/images-manifest.json +1 -0
  6. package/.next-prod/next-minimal-server.js.nft.json +1 -1
  7. package/.next-prod/next-server.js.nft.json +1 -1
  8. package/.next-prod/prerender-manifest.json +3 -3
  9. package/.next-prod/react-loadable-manifest.json +2 -258
  10. package/.next-prod/required-server-files.js +18 -6
  11. package/.next-prod/required-server-files.json +18 -6
  12. package/.next-prod/routes-manifest.json +13 -0
  13. package/.next-prod/server/app/_global-error/page.js +32 -3
  14. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  15. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/.next-prod/server/app/_global-error.html +1 -2
  17. package/.next-prod/server/app/_global-error.rsc +8 -6
  18. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +8 -6
  19. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +2 -1
  21. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +2 -1
  23. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/.next-prod/server/app/_not-found/page.js +2 -2
  25. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  26. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/.next-prod/server/app/_not-found.html +2 -2
  28. package/.next-prod/server/app/_not-found.rsc +11 -9
  29. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +11 -9
  30. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  31. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  32. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  33. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +2 -1
  34. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  35. package/.next-prod/server/app/api/bash/route.js +1 -1
  36. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  37. package/.next-prod/server/app/api/bash/route_client-reference-manifest.js +1 -1
  38. package/.next-prod/server/app/api/chat/codex/route.js +13 -13
  39. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/chat/codex/route_client-reference-manifest.js +1 -1
  41. package/.next-prod/server/app/api/chat/kimi/route.js +3 -3
  42. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/chat/kimi/route_client-reference-manifest.js +1 -1
  44. package/.next-prod/server/app/api/chat/ollama/route.js +3 -3
  45. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/chat/ollama/route_client-reference-manifest.js +1 -1
  47. package/.next-prod/server/app/api/chat/route.js +3 -3
  48. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/chat/route_client-reference-manifest.js +1 -1
  50. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  51. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  52. package/.next-prod/server/app/api/claude-stats/route_client-reference-manifest.js +1 -1
  53. package/.next-prod/server/app/api/commands/route.js +1 -1
  54. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/commands/route_client-reference-manifest.js +1 -1
  56. package/.next-prod/server/app/api/comments/route.js +1 -1
  57. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  58. package/.next-prod/server/app/api/comments/route_client-reference-manifest.js +1 -1
  59. package/.next-prod/server/app/api/db/columns/route.js +2 -2
  60. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/db/columns/route_client-reference-manifest.js +1 -1
  62. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  63. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  64. package/.next-prod/server/app/api/db/connect/route_client-reference-manifest.js +1 -1
  65. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  66. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/db/disconnect/route_client-reference-manifest.js +1 -1
  68. package/.next-prod/server/app/api/db/export/route.js +1 -1
  69. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  70. package/.next-prod/server/app/api/db/export/route_client-reference-manifest.js +1 -1
  71. package/.next-prod/server/app/api/db/query/route.js +1 -1
  72. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/db/query/route_client-reference-manifest.js +1 -1
  74. package/.next-prod/server/app/api/db/schemas/route.js +2 -2
  75. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  76. package/.next-prod/server/app/api/db/schemas/route_client-reference-manifest.js +1 -1
  77. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  78. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/extension/version/route_client-reference-manifest.js +1 -1
  80. package/.next-prod/server/app/api/file/route.js +1 -1
  81. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  82. package/.next-prod/server/app/api/file/route_client-reference-manifest.js +1 -1
  83. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  84. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/files/blame/route_client-reference-manifest.js +1 -1
  86. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  87. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/files/clipboard/route_client-reference-manifest.js +1 -1
  89. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  90. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/files/copy/route_client-reference-manifest.js +1 -1
  92. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  93. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/files/delete/route_client-reference-manifest.js +1 -1
  95. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  96. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/files/expanded/route_client-reference-manifest.js +1 -1
  98. package/.next-prod/server/app/api/files/index/route.js +1 -1
  99. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/files/index/route_client-reference-manifest.js +1 -1
  101. package/.next-prod/server/app/api/files/init/route.js +1 -1
  102. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/files/init/route_client-reference-manifest.js +1 -1
  104. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  105. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/files/paste/route_client-reference-manifest.js +1 -1
  107. package/.next-prod/server/app/api/files/read/route.js +1 -1
  108. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/files/read/route_client-reference-manifest.js +1 -1
  110. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  111. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/files/readdir/route_client-reference-manifest.js +1 -1
  113. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  114. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
  116. package/.next-prod/server/app/api/files/save/route.js +1 -1
  117. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/files/save/route_client-reference-manifest.js +1 -1
  119. package/.next-prod/server/app/api/files/search/route.js +1 -1
  120. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/files/search/route_client-reference-manifest.js +1 -1
  122. package/.next-prod/server/app/api/files/stat/route.js +1 -0
  123. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -0
  124. package/.next-prod/server/app/api/files/stat/route_client-reference-manifest.js +1 -0
  125. package/.next-prod/server/app/api/files/text/route.js +1 -0
  126. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -0
  127. package/.next-prod/server/app/api/files/text/route_client-reference-manifest.js +1 -0
  128. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  129. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/git/branch-diff/route_client-reference-manifest.js +1 -1
  131. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  132. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/git/branches/route_client-reference-manifest.js +1 -1
  134. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  135. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/git/commit-diff/route_client-reference-manifest.js +1 -1
  137. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  138. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/git/commits/route_client-reference-manifest.js +1 -1
  140. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  141. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  142. package/.next-prod/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  143. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  144. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/git/discard/route_client-reference-manifest.js +1 -1
  146. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  147. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/git/stage/route_client-reference-manifest.js +1 -1
  149. package/.next-prod/server/app/api/git/status/route.js +1 -1
  150. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  152. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  153. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/git/unstage/route_client-reference-manifest.js +1 -1
  155. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  156. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/git/worktree/route_client-reference-manifest.js +1 -1
  158. package/.next-prod/server/app/api/global-state/route.js +1 -1
  159. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/api/global-state/route_client-reference-manifest.js +1 -1
  161. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  162. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/jupyter/load/route_client-reference-manifest.js +1 -1
  164. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  165. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  166. package/.next-prod/server/app/api/jupyter/save/route_client-reference-manifest.js +1 -1
  167. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  168. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/api/jupyter/shutdown/route_client-reference-manifest.js +1 -1
  170. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  171. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  172. package/.next-prod/server/app/api/lsp/definition/route_client-reference-manifest.js +1 -1
  173. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  174. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  175. package/.next-prod/server/app/api/lsp/hover/route_client-reference-manifest.js +1 -1
  176. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  177. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  178. package/.next-prod/server/app/api/lsp/references/route_client-reference-manifest.js +1 -1
  179. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  180. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/lsp/status/route_client-reference-manifest.js +1 -1
  182. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  183. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  184. package/.next-prod/server/app/api/lsp/warmup/route_client-reference-manifest.js +1 -1
  185. package/.next-prod/server/app/api/mysql/columns/route.js +2 -2
  186. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  187. package/.next-prod/server/app/api/mysql/columns/route_client-reference-manifest.js +1 -1
  188. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  189. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  190. package/.next-prod/server/app/api/mysql/connect/route_client-reference-manifest.js +1 -1
  191. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  192. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  193. package/.next-prod/server/app/api/mysql/disconnect/route_client-reference-manifest.js +1 -1
  194. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  195. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  196. package/.next-prod/server/app/api/mysql/export/route_client-reference-manifest.js +1 -1
  197. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  198. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  199. package/.next-prod/server/app/api/mysql/query/route_client-reference-manifest.js +1 -1
  200. package/.next-prod/server/app/api/mysql/schemas/route.js +2 -2
  201. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  202. package/.next-prod/server/app/api/mysql/schemas/route_client-reference-manifest.js +1 -1
  203. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  204. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  205. package/.next-prod/server/app/api/neo4j/connect/route_client-reference-manifest.js +1 -1
  206. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  207. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  208. package/.next-prod/server/app/api/neo4j/disconnect/route_client-reference-manifest.js +1 -1
  209. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  210. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  211. package/.next-prod/server/app/api/neo4j/query/route_client-reference-manifest.js +1 -1
  212. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  213. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  214. package/.next-prod/server/app/api/neo4j/schema/route_client-reference-manifest.js +1 -1
  215. package/.next-prod/server/app/api/note/route.js +1 -1
  216. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  217. package/.next-prod/server/app/api/note/route_client-reference-manifest.js +1 -1
  218. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  219. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  220. package/.next-prod/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  221. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  222. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  223. package/.next-prod/server/app/api/ollama/start/route_client-reference-manifest.js +1 -1
  224. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  225. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  226. package/.next-prod/server/app/api/open-cursor/route_client-reference-manifest.js +1 -1
  227. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  228. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  229. package/.next-prod/server/app/api/open-vscode/route_client-reference-manifest.js +1 -1
  230. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  231. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  232. package/.next-prod/server/app/api/pick-folder/route_client-reference-manifest.js +1 -1
  233. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  234. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  235. package/.next-prod/server/app/api/pinned-sessions/route_client-reference-manifest.js +1 -1
  236. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  237. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  238. package/.next-prod/server/app/api/project-settings/route_client-reference-manifest.js +1 -1
  239. package/.next-prod/server/app/api/project-state/route.js +1 -1
  240. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  241. package/.next-prod/server/app/api/project-state/route_client-reference-manifest.js +1 -1
  242. package/.next-prod/server/app/api/projects/route.js +1 -1
  243. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  244. package/.next-prod/server/app/api/projects/route_client-reference-manifest.js +1 -1
  245. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  246. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  247. package/.next-prod/server/app/api/redis/command/route_client-reference-manifest.js +1 -1
  248. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  249. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  250. package/.next-prod/server/app/api/redis/connect/route_client-reference-manifest.js +1 -1
  251. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  252. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  253. package/.next-prod/server/app/api/redis/delete/route_client-reference-manifest.js +1 -1
  254. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  255. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  256. package/.next-prod/server/app/api/redis/disconnect/route_client-reference-manifest.js +1 -1
  257. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  258. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  259. package/.next-prod/server/app/api/redis/get/route_client-reference-manifest.js +1 -1
  260. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  261. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  262. package/.next-prod/server/app/api/redis/keys/route_client-reference-manifest.js +1 -1
  263. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  264. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  265. package/.next-prod/server/app/api/redis/set/route_client-reference-manifest.js +1 -1
  266. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  267. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  268. package/.next-prod/server/app/api/review/[id]/comments/route_client-reference-manifest.js +1 -1
  269. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  270. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  271. package/.next-prod/server/app/api/review/[id]/replies/route_client-reference-manifest.js +1 -1
  272. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  273. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  274. package/.next-prod/server/app/api/review/[id]/route_client-reference-manifest.js +1 -1
  275. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  276. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  277. package/.next-prod/server/app/api/review/identify/route_client-reference-manifest.js +1 -1
  278. package/.next-prod/server/app/api/review/order/route.js +1 -1
  279. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  280. package/.next-prod/server/app/api/review/order/route_client-reference-manifest.js +1 -1
  281. package/.next-prod/server/app/api/review/route.js +1 -1
  282. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  283. package/.next-prod/server/app/api/review/route_client-reference-manifest.js +1 -1
  284. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  285. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  286. package/.next-prod/server/app/api/review/share-info/route_client-reference-manifest.js +1 -1
  287. package/.next-prod/server/app/api/review/users/route.js +1 -1
  288. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  289. package/.next-prod/server/app/api/review/users/route_client-reference-manifest.js +1 -1
  290. package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
  291. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  292. package/.next-prod/server/app/api/scheduled-tasks/route_client-reference-manifest.js +1 -1
  293. package/.next-prod/server/app/api/services/config/route.js +1 -1
  294. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  295. package/.next-prod/server/app/api/services/config/route_client-reference-manifest.js +1 -1
  296. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  297. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  298. package/.next-prod/server/app/api/services/scripts/route_client-reference-manifest.js +1 -1
  299. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  300. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  301. package/.next-prod/server/app/api/session/[sessionId]/fork/route_client-reference-manifest.js +1 -1
  302. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  303. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  304. package/.next-prod/server/app/api/session/[sessionId]/history/route_client-reference-manifest.js +1 -1
  305. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  306. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  307. package/.next-prod/server/app/api/session-by-path/route_client-reference-manifest.js +1 -1
  308. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  309. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  310. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route_client-reference-manifest.js +1 -1
  311. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  312. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  313. package/.next-prod/server/app/api/sessions/projects/route_client-reference-manifest.js +1 -1
  314. package/.next-prod/server/app/api/sessions/route.js +1 -1
  315. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  316. package/.next-prod/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  317. package/.next-prod/server/app/api/settings/route.js +1 -1
  318. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  319. package/.next-prod/server/app/api/settings/route_client-reference-manifest.js +1 -1
  320. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  321. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  322. package/.next-prod/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  323. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  324. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  325. package/.next-prod/server/app/api/skills/content/route_client-reference-manifest.js +1 -1
  326. package/.next-prod/server/app/api/skills/route.js +1 -1
  327. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  328. package/.next-prod/server/app/api/skills/route_client-reference-manifest.js +1 -1
  329. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  330. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  331. package/.next-prod/server/app/api/terminal/aliases/route_client-reference-manifest.js +1 -1
  332. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  333. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  334. package/.next-prod/server/app/api/terminal/autocomplete/route_client-reference-manifest.js +1 -1
  335. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  336. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  337. package/.next-prod/server/app/api/terminal/bubble-order/route_client-reference-manifest.js +1 -1
  338. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  339. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  340. package/.next-prod/server/app/api/terminal/env/route_client-reference-manifest.js +1 -1
  341. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  342. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  343. package/.next-prod/server/app/api/terminal/history/route_client-reference-manifest.js +1 -1
  344. package/.next-prod/server/app/api/version/route.js +1 -1
  345. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  346. package/.next-prod/server/app/api/version/route_client-reference-manifest.js +1 -1
  347. package/.next-prod/server/app/favicon.ico/route.js +1 -1
  348. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  349. package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
  350. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  351. package/.next-prod/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  352. package/.next-prod/server/app/page.js +6 -6
  353. package/.next-prod/server/app/page.js.nft.json +1 -1
  354. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  355. package/.next-prod/server/app/project/page.js +8 -8
  356. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  357. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  358. package/.next-prod/server/app/review/[id]/page.js +2 -2
  359. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  360. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  361. package/.next-prod/server/app-paths-manifest.json +15 -13
  362. package/.next-prod/server/chunks/1813.js +1 -1
  363. package/.next-prod/server/chunks/2338.js +1 -1
  364. package/.next-prod/server/chunks/3269.js +1 -1
  365. package/.next-prod/server/chunks/3353.js +1 -0
  366. package/.next-prod/server/chunks/4098.js +1 -1
  367. package/.next-prod/server/chunks/4490.js +3 -3
  368. package/.next-prod/server/chunks/4732.js +1 -0
  369. package/.next-prod/server/chunks/4741.js +5 -9
  370. package/.next-prod/server/chunks/4793.js +1 -1
  371. package/.next-prod/server/chunks/5147.js +1 -1
  372. package/.next-prod/server/chunks/700.js +1 -1
  373. package/.next-prod/server/chunks/7514.js +1 -1
  374. package/.next-prod/server/chunks/8465.js +15 -0
  375. package/.next-prod/server/middleware-build-manifest.js +1 -1
  376. package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
  377. package/.next-prod/server/pages/404.html +2 -2
  378. package/.next-prod/server/pages/500.html +1 -2
  379. package/.next-prod/server/prefetch-hints.json +1 -0
  380. package/.next-prod/server/server-reference-manifest.json +1 -1
  381. package/.next-prod/static/chunks/3530-74191451ec2a46c4.js +14 -0
  382. package/.next-prod/static/chunks/3579-70c6663ba8c0cf1b.js +1 -0
  383. package/.next-prod/static/chunks/{3695-f14fb3e48483755c.js → 3695-9503d0b646958dd4.js} +2 -2
  384. package/.next-prod/static/chunks/3700-e32aa43691d128b2.js +1 -0
  385. package/.next-prod/static/chunks/{3743-66d6d2ef6629c733.js → 3743-5e5ffaf674977450.js} +1 -1
  386. package/.next-prod/static/chunks/3794-3fb4e6ee851037bb.js +32 -0
  387. package/.next-prod/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
  388. package/.next-prod/static/chunks/{7650.18f74243e9325242.js → 5269.2e771096652dc113.js} +1 -1
  389. package/.next-prod/static/chunks/54a60aa6-1a0e6738c5ca0c78.js +79 -0
  390. package/.next-prod/static/chunks/{9062-a330afa1af7f133e.js → 9062-ea4adbf70cf62f01.js} +1 -1
  391. package/.next-prod/static/chunks/{aaea2bcf-4f9eb5012da21e0f.js → aaea2bcf-be8b39a8f32280f3.js} +1 -1
  392. package/.next-prod/static/chunks/app/_global-error/page-94e40d01eb0846a0.js +1 -0
  393. package/.next-prod/static/chunks/app/api/bash/route-94e40d01eb0846a0.js +1 -0
  394. package/.next-prod/static/chunks/app/api/chat/codex/route-94e40d01eb0846a0.js +1 -0
  395. package/.next-prod/static/chunks/app/api/chat/kimi/route-94e40d01eb0846a0.js +1 -0
  396. package/.next-prod/static/chunks/app/api/chat/ollama/route-94e40d01eb0846a0.js +1 -0
  397. package/.next-prod/static/chunks/app/api/chat/route-94e40d01eb0846a0.js +1 -0
  398. package/.next-prod/static/chunks/app/api/claude-stats/route-94e40d01eb0846a0.js +1 -0
  399. package/.next-prod/static/chunks/app/api/commands/route-94e40d01eb0846a0.js +1 -0
  400. package/.next-prod/static/chunks/app/api/comments/route-94e40d01eb0846a0.js +1 -0
  401. package/.next-prod/static/chunks/app/api/db/columns/route-94e40d01eb0846a0.js +1 -0
  402. package/.next-prod/static/chunks/app/api/db/connect/route-94e40d01eb0846a0.js +1 -0
  403. package/.next-prod/static/chunks/app/api/db/disconnect/route-94e40d01eb0846a0.js +1 -0
  404. package/.next-prod/static/chunks/app/api/db/export/route-94e40d01eb0846a0.js +1 -0
  405. package/.next-prod/static/chunks/app/api/db/query/route-94e40d01eb0846a0.js +1 -0
  406. package/.next-prod/static/chunks/app/api/db/schemas/route-94e40d01eb0846a0.js +1 -0
  407. package/.next-prod/static/chunks/app/api/extension/version/route-94e40d01eb0846a0.js +1 -0
  408. package/.next-prod/static/chunks/app/api/file/route-94e40d01eb0846a0.js +1 -0
  409. package/.next-prod/static/chunks/app/api/files/blame/route-94e40d01eb0846a0.js +1 -0
  410. package/.next-prod/static/chunks/app/api/files/clipboard/route-94e40d01eb0846a0.js +1 -0
  411. package/.next-prod/static/chunks/app/api/files/copy/route-94e40d01eb0846a0.js +1 -0
  412. package/.next-prod/static/chunks/app/api/files/delete/route-94e40d01eb0846a0.js +1 -0
  413. package/.next-prod/static/chunks/app/api/files/expanded/route-94e40d01eb0846a0.js +1 -0
  414. package/.next-prod/static/chunks/app/api/files/index/route-94e40d01eb0846a0.js +1 -0
  415. package/.next-prod/static/chunks/app/api/files/init/route-94e40d01eb0846a0.js +1 -0
  416. package/.next-prod/static/chunks/app/api/files/paste/route-94e40d01eb0846a0.js +1 -0
  417. package/.next-prod/static/chunks/app/api/files/read/route-94e40d01eb0846a0.js +1 -0
  418. package/.next-prod/static/chunks/app/api/files/readdir/route-94e40d01eb0846a0.js +1 -0
  419. package/.next-prod/static/chunks/app/api/files/recent/route-94e40d01eb0846a0.js +1 -0
  420. package/.next-prod/static/chunks/app/api/files/save/route-94e40d01eb0846a0.js +1 -0
  421. package/.next-prod/static/chunks/app/api/files/search/route-94e40d01eb0846a0.js +1 -0
  422. package/.next-prod/static/chunks/app/api/files/stat/route-94e40d01eb0846a0.js +1 -0
  423. package/.next-prod/static/chunks/app/api/files/text/route-94e40d01eb0846a0.js +1 -0
  424. package/.next-prod/static/chunks/app/api/git/branch-diff/route-94e40d01eb0846a0.js +1 -0
  425. package/.next-prod/static/chunks/app/api/git/branches/route-94e40d01eb0846a0.js +1 -0
  426. package/.next-prod/static/chunks/app/api/git/commit-diff/route-94e40d01eb0846a0.js +1 -0
  427. package/.next-prod/static/chunks/app/api/git/commits/route-94e40d01eb0846a0.js +1 -0
  428. package/.next-prod/static/chunks/app/api/git/diff/route-94e40d01eb0846a0.js +1 -0
  429. package/.next-prod/static/chunks/app/api/git/discard/route-94e40d01eb0846a0.js +1 -0
  430. package/.next-prod/static/chunks/app/api/git/stage/route-94e40d01eb0846a0.js +1 -0
  431. package/.next-prod/static/chunks/app/api/git/status/route-94e40d01eb0846a0.js +1 -0
  432. package/.next-prod/static/chunks/app/api/git/unstage/route-94e40d01eb0846a0.js +1 -0
  433. package/.next-prod/static/chunks/app/api/git/worktree/route-94e40d01eb0846a0.js +1 -0
  434. package/.next-prod/static/chunks/app/api/global-state/route-94e40d01eb0846a0.js +1 -0
  435. package/.next-prod/static/chunks/app/api/jupyter/load/route-94e40d01eb0846a0.js +1 -0
  436. package/.next-prod/static/chunks/app/api/jupyter/save/route-94e40d01eb0846a0.js +1 -0
  437. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-94e40d01eb0846a0.js +1 -0
  438. package/.next-prod/static/chunks/app/api/lsp/definition/route-94e40d01eb0846a0.js +1 -0
  439. package/.next-prod/static/chunks/app/api/lsp/hover/route-94e40d01eb0846a0.js +1 -0
  440. package/.next-prod/static/chunks/app/api/lsp/references/route-94e40d01eb0846a0.js +1 -0
  441. package/.next-prod/static/chunks/app/api/lsp/status/route-94e40d01eb0846a0.js +1 -0
  442. package/.next-prod/static/chunks/app/api/lsp/warmup/route-94e40d01eb0846a0.js +1 -0
  443. package/.next-prod/static/chunks/app/api/mysql/columns/route-94e40d01eb0846a0.js +1 -0
  444. package/.next-prod/static/chunks/app/api/mysql/connect/route-94e40d01eb0846a0.js +1 -0
  445. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-94e40d01eb0846a0.js +1 -0
  446. package/.next-prod/static/chunks/app/api/mysql/export/route-94e40d01eb0846a0.js +1 -0
  447. package/.next-prod/static/chunks/app/api/mysql/query/route-94e40d01eb0846a0.js +1 -0
  448. package/.next-prod/static/chunks/app/api/mysql/schemas/route-94e40d01eb0846a0.js +1 -0
  449. package/.next-prod/static/chunks/app/api/neo4j/connect/route-94e40d01eb0846a0.js +1 -0
  450. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-94e40d01eb0846a0.js +1 -0
  451. package/.next-prod/static/chunks/app/api/neo4j/query/route-94e40d01eb0846a0.js +1 -0
  452. package/.next-prod/static/chunks/app/api/neo4j/schema/route-94e40d01eb0846a0.js +1 -0
  453. package/.next-prod/static/chunks/app/api/note/route-94e40d01eb0846a0.js +1 -0
  454. package/.next-prod/static/chunks/app/api/ollama/models/route-94e40d01eb0846a0.js +1 -0
  455. package/.next-prod/static/chunks/app/api/ollama/start/route-94e40d01eb0846a0.js +1 -0
  456. package/.next-prod/static/chunks/app/api/open-cursor/route-94e40d01eb0846a0.js +1 -0
  457. package/.next-prod/static/chunks/app/api/open-vscode/route-94e40d01eb0846a0.js +1 -0
  458. package/.next-prod/static/chunks/app/api/pick-folder/route-94e40d01eb0846a0.js +1 -0
  459. package/.next-prod/static/chunks/app/api/pinned-sessions/route-94e40d01eb0846a0.js +1 -0
  460. package/.next-prod/static/chunks/app/api/project-settings/route-94e40d01eb0846a0.js +1 -0
  461. package/.next-prod/static/chunks/app/api/project-state/route-94e40d01eb0846a0.js +1 -0
  462. package/.next-prod/static/chunks/app/api/projects/route-94e40d01eb0846a0.js +1 -0
  463. package/.next-prod/static/chunks/app/api/redis/command/route-94e40d01eb0846a0.js +1 -0
  464. package/.next-prod/static/chunks/app/api/redis/connect/route-94e40d01eb0846a0.js +1 -0
  465. package/.next-prod/static/chunks/app/api/redis/delete/route-94e40d01eb0846a0.js +1 -0
  466. package/.next-prod/static/chunks/app/api/redis/disconnect/route-94e40d01eb0846a0.js +1 -0
  467. package/.next-prod/static/chunks/app/api/redis/get/route-94e40d01eb0846a0.js +1 -0
  468. package/.next-prod/static/chunks/app/api/redis/keys/route-94e40d01eb0846a0.js +1 -0
  469. package/.next-prod/static/chunks/app/api/redis/set/route-94e40d01eb0846a0.js +1 -0
  470. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-94e40d01eb0846a0.js +1 -0
  471. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-94e40d01eb0846a0.js +1 -0
  472. package/.next-prod/static/chunks/app/api/review/[id]/route-94e40d01eb0846a0.js +1 -0
  473. package/.next-prod/static/chunks/app/api/review/identify/route-94e40d01eb0846a0.js +1 -0
  474. package/.next-prod/static/chunks/app/api/review/order/route-94e40d01eb0846a0.js +1 -0
  475. package/.next-prod/static/chunks/app/api/review/route-94e40d01eb0846a0.js +1 -0
  476. package/.next-prod/static/chunks/app/api/review/share-info/route-94e40d01eb0846a0.js +1 -0
  477. package/.next-prod/static/chunks/app/api/review/users/route-94e40d01eb0846a0.js +1 -0
  478. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-94e40d01eb0846a0.js +1 -0
  479. package/.next-prod/static/chunks/app/api/services/config/route-94e40d01eb0846a0.js +1 -0
  480. package/.next-prod/static/chunks/app/api/services/scripts/route-94e40d01eb0846a0.js +1 -0
  481. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-94e40d01eb0846a0.js +1 -0
  482. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-94e40d01eb0846a0.js +1 -0
  483. package/.next-prod/static/chunks/app/api/session-by-path/route-94e40d01eb0846a0.js +1 -0
  484. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-94e40d01eb0846a0.js +1 -0
  485. package/.next-prod/static/chunks/app/api/sessions/projects/route-94e40d01eb0846a0.js +1 -0
  486. package/.next-prod/static/chunks/app/api/sessions/route-94e40d01eb0846a0.js +1 -0
  487. package/.next-prod/static/chunks/app/api/settings/route-94e40d01eb0846a0.js +1 -0
  488. package/.next-prod/static/chunks/app/api/skills/[id]/route-94e40d01eb0846a0.js +1 -0
  489. package/.next-prod/static/chunks/app/api/skills/content/route-94e40d01eb0846a0.js +1 -0
  490. package/.next-prod/static/chunks/app/api/skills/route-94e40d01eb0846a0.js +1 -0
  491. package/.next-prod/static/chunks/app/api/terminal/aliases/route-94e40d01eb0846a0.js +1 -0
  492. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-94e40d01eb0846a0.js +1 -0
  493. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-94e40d01eb0846a0.js +1 -0
  494. package/.next-prod/static/chunks/app/api/terminal/env/route-94e40d01eb0846a0.js +1 -0
  495. package/.next-prod/static/chunks/app/api/terminal/history/route-94e40d01eb0846a0.js +1 -0
  496. package/.next-prod/static/chunks/app/api/version/route-94e40d01eb0846a0.js +1 -0
  497. package/.next-prod/static/chunks/app/manifest.webmanifest/route-94e40d01eb0846a0.js +1 -0
  498. package/.next-prod/static/chunks/app/{page-e0d663a97bc29595.js → page-95c3cb3c5c7c5ef1.js} +1 -1
  499. package/.next-prod/static/chunks/app/project/page-180bad159db256a5.js +29 -0
  500. package/.next-prod/static/chunks/app/review/[id]/page-e81c220af0b68e3e.js +1 -0
  501. package/.next-prod/static/chunks/d3ac728e-ba6c269aebe5932e.js +1 -0
  502. package/.next-prod/static/chunks/{e868780c.a081703edc1bc551.js → e868780c.16e43c5968ccf2bf.js} +3 -3
  503. package/.next-prod/static/chunks/framework-52c9cc950957e3ac.js +1 -0
  504. package/.next-prod/static/chunks/main-5a46314a5491113b.js +5 -0
  505. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-94e40d01eb0846a0.js +1 -0
  506. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-94e40d01eb0846a0.js +1 -0
  507. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-94e40d01eb0846a0.js +1 -0
  508. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-94e40d01eb0846a0.js +1 -0
  509. package/.next-prod/static/chunks/webpack-067b7836d8df9226.js +1 -0
  510. package/.next-prod/static/css/aefab4a01c890b38.css +3 -0
  511. package/.next-prod/static/smsKM7xQ0sAR3fsFWgImc/_buildManifest.js +1 -0
  512. package/.next-prod/trace +12 -13
  513. package/.next-prod/trace-build +1 -1
  514. package/.next-prod/types/app/api/bash/route.ts +3 -2
  515. package/.next-prod/types/app/api/chat/codex/route.ts +3 -2
  516. package/.next-prod/types/app/api/chat/kimi/route.ts +3 -2
  517. package/.next-prod/types/app/api/chat/ollama/route.ts +3 -2
  518. package/.next-prod/types/app/api/chat/route.ts +3 -2
  519. package/.next-prod/types/app/api/claude-stats/route.ts +3 -2
  520. package/.next-prod/types/app/api/commands/route.ts +3 -2
  521. package/.next-prod/types/app/api/comments/route.ts +3 -2
  522. package/.next-prod/types/app/api/db/columns/route.ts +3 -2
  523. package/.next-prod/types/app/api/db/connect/route.ts +3 -2
  524. package/.next-prod/types/app/api/db/disconnect/route.ts +3 -2
  525. package/.next-prod/types/app/api/db/export/route.ts +3 -2
  526. package/.next-prod/types/app/api/db/query/route.ts +3 -2
  527. package/.next-prod/types/app/api/db/schemas/route.ts +3 -2
  528. package/.next-prod/types/app/api/extension/version/route.ts +3 -2
  529. package/.next-prod/types/app/api/file/route.ts +3 -2
  530. package/.next-prod/types/app/api/files/blame/route.ts +3 -2
  531. package/.next-prod/types/app/api/files/clipboard/route.ts +3 -2
  532. package/.next-prod/types/app/api/files/copy/route.ts +3 -2
  533. package/.next-prod/types/app/api/files/delete/route.ts +3 -2
  534. package/.next-prod/types/app/api/files/expanded/route.ts +3 -2
  535. package/.next-prod/types/app/api/files/index/route.ts +3 -2
  536. package/.next-prod/types/app/api/files/init/route.ts +3 -2
  537. package/.next-prod/types/app/api/files/paste/route.ts +3 -2
  538. package/.next-prod/types/app/api/files/read/route.ts +3 -2
  539. package/.next-prod/types/app/api/files/readdir/route.ts +3 -2
  540. package/.next-prod/types/app/api/files/recent/route.ts +3 -2
  541. package/.next-prod/types/app/api/files/save/route.ts +3 -2
  542. package/.next-prod/types/app/api/files/search/route.ts +3 -2
  543. package/.next-prod/types/app/api/files/stat/route.ts +351 -0
  544. package/.next-prod/types/app/api/files/text/route.ts +351 -0
  545. package/.next-prod/types/app/api/git/branch-diff/route.ts +3 -2
  546. package/.next-prod/types/app/api/git/branches/route.ts +3 -2
  547. package/.next-prod/types/app/api/git/commit-diff/route.ts +3 -2
  548. package/.next-prod/types/app/api/git/commits/route.ts +3 -2
  549. package/.next-prod/types/app/api/git/diff/route.ts +3 -2
  550. package/.next-prod/types/app/api/git/discard/route.ts +3 -2
  551. package/.next-prod/types/app/api/git/stage/route.ts +3 -2
  552. package/.next-prod/types/app/api/git/status/route.ts +3 -2
  553. package/.next-prod/types/app/api/git/unstage/route.ts +3 -2
  554. package/.next-prod/types/app/api/git/worktree/route.ts +3 -2
  555. package/.next-prod/types/app/api/global-state/route.ts +3 -2
  556. package/.next-prod/types/app/api/jupyter/load/route.ts +3 -2
  557. package/.next-prod/types/app/api/jupyter/save/route.ts +3 -2
  558. package/.next-prod/types/app/api/jupyter/shutdown/route.ts +3 -2
  559. package/.next-prod/types/app/api/lsp/definition/route.ts +3 -2
  560. package/.next-prod/types/app/api/lsp/hover/route.ts +3 -2
  561. package/.next-prod/types/app/api/lsp/references/route.ts +3 -2
  562. package/.next-prod/types/app/api/lsp/status/route.ts +3 -2
  563. package/.next-prod/types/app/api/lsp/warmup/route.ts +3 -2
  564. package/.next-prod/types/app/api/mysql/columns/route.ts +3 -2
  565. package/.next-prod/types/app/api/mysql/connect/route.ts +3 -2
  566. package/.next-prod/types/app/api/mysql/disconnect/route.ts +3 -2
  567. package/.next-prod/types/app/api/mysql/export/route.ts +3 -2
  568. package/.next-prod/types/app/api/mysql/query/route.ts +3 -2
  569. package/.next-prod/types/app/api/mysql/schemas/route.ts +3 -2
  570. package/.next-prod/types/app/api/neo4j/connect/route.ts +3 -2
  571. package/.next-prod/types/app/api/neo4j/disconnect/route.ts +3 -2
  572. package/.next-prod/types/app/api/neo4j/query/route.ts +3 -2
  573. package/.next-prod/types/app/api/neo4j/schema/route.ts +3 -2
  574. package/.next-prod/types/app/api/note/route.ts +3 -2
  575. package/.next-prod/types/app/api/ollama/models/route.ts +3 -2
  576. package/.next-prod/types/app/api/ollama/start/route.ts +3 -2
  577. package/.next-prod/types/app/api/open-cursor/route.ts +3 -2
  578. package/.next-prod/types/app/api/open-vscode/route.ts +3 -2
  579. package/.next-prod/types/app/api/pick-folder/route.ts +3 -2
  580. package/.next-prod/types/app/api/pinned-sessions/route.ts +3 -2
  581. package/.next-prod/types/app/api/project-settings/route.ts +3 -2
  582. package/.next-prod/types/app/api/project-state/route.ts +3 -2
  583. package/.next-prod/types/app/api/projects/route.ts +3 -2
  584. package/.next-prod/types/app/api/redis/command/route.ts +3 -2
  585. package/.next-prod/types/app/api/redis/connect/route.ts +3 -2
  586. package/.next-prod/types/app/api/redis/delete/route.ts +3 -2
  587. package/.next-prod/types/app/api/redis/disconnect/route.ts +3 -2
  588. package/.next-prod/types/app/api/redis/get/route.ts +3 -2
  589. package/.next-prod/types/app/api/redis/keys/route.ts +3 -2
  590. package/.next-prod/types/app/api/redis/set/route.ts +3 -2
  591. package/.next-prod/types/app/api/review/[id]/comments/route.ts +3 -2
  592. package/.next-prod/types/app/api/review/[id]/replies/route.ts +3 -2
  593. package/.next-prod/types/app/api/review/[id]/route.ts +3 -2
  594. package/.next-prod/types/app/api/review/identify/route.ts +3 -2
  595. package/.next-prod/types/app/api/review/order/route.ts +3 -2
  596. package/.next-prod/types/app/api/review/route.ts +3 -2
  597. package/.next-prod/types/app/api/review/share-info/route.ts +3 -2
  598. package/.next-prod/types/app/api/review/users/route.ts +3 -2
  599. package/.next-prod/types/app/api/scheduled-tasks/route.ts +3 -2
  600. package/.next-prod/types/app/api/services/config/route.ts +3 -2
  601. package/.next-prod/types/app/api/services/scripts/route.ts +3 -2
  602. package/.next-prod/types/app/api/session/[sessionId]/fork/route.ts +3 -2
  603. package/.next-prod/types/app/api/session/[sessionId]/history/route.ts +3 -2
  604. package/.next-prod/types/app/api/session-by-path/route.ts +3 -2
  605. package/.next-prod/types/app/api/sessions/projects/[encodedPath]/route.ts +3 -2
  606. package/.next-prod/types/app/api/sessions/projects/route.ts +3 -2
  607. package/.next-prod/types/app/api/sessions/route.ts +3 -2
  608. package/.next-prod/types/app/api/settings/route.ts +3 -2
  609. package/.next-prod/types/app/api/skills/[id]/route.ts +3 -2
  610. package/.next-prod/types/app/api/skills/content/route.ts +3 -2
  611. package/.next-prod/types/app/api/skills/route.ts +3 -2
  612. package/.next-prod/types/app/api/terminal/aliases/route.ts +3 -2
  613. package/.next-prod/types/app/api/terminal/autocomplete/route.ts +3 -2
  614. package/.next-prod/types/app/api/terminal/bubble-order/route.ts +3 -2
  615. package/.next-prod/types/app/api/terminal/env/route.ts +3 -2
  616. package/.next-prod/types/app/api/terminal/history/route.ts +3 -2
  617. package/.next-prod/types/app/api/version/route.ts +3 -2
  618. package/.next-prod/types/app/page.ts +3 -2
  619. package/.next-prod/types/app/project/page.ts +3 -2
  620. package/.next-prod/types/app/review/[id]/page.ts +3 -2
  621. package/.next-prod/types/cache-life.d.ts +145 -0
  622. package/.next-prod/types/routes.d.ts +3 -1
  623. package/.next-prod/types/validator.ts +18 -0
  624. package/README.md +1 -1
  625. package/README.zh.md +1 -1
  626. package/dist/wsServer.mjs +56 -6
  627. package/package.json +2 -3
  628. package/server.mjs +49 -5
  629. package/.next-prod/server/chunks/1639.js +0 -1
  630. package/.next-prod/server/chunks/1661.js +0 -1
  631. package/.next-prod/server/chunks/1667.js +0 -1
  632. package/.next-prod/server/chunks/1912.js +0 -1
  633. package/.next-prod/server/chunks/2325.js +0 -82
  634. package/.next-prod/server/chunks/2376.js +0 -36
  635. package/.next-prod/server/chunks/2816.js +0 -1
  636. package/.next-prod/server/chunks/2840.js +0 -62
  637. package/.next-prod/server/chunks/3434.js +0 -1
  638. package/.next-prod/server/chunks/3441.js +0 -24
  639. package/.next-prod/server/chunks/3503.js +0 -29
  640. package/.next-prod/server/chunks/3932.js +0 -56
  641. package/.next-prod/server/chunks/4073.js +0 -1
  642. package/.next-prod/server/chunks/4097.js +0 -136
  643. package/.next-prod/server/chunks/4268.js +0 -4
  644. package/.next-prod/server/chunks/4309.js +0 -141
  645. package/.next-prod/server/chunks/4345.js +0 -1
  646. package/.next-prod/server/chunks/4367.js +0 -1
  647. package/.next-prod/server/chunks/4388.js +0 -24
  648. package/.next-prod/server/chunks/4442.js +0 -1
  649. package/.next-prod/server/chunks/459.js +0 -1
  650. package/.next-prod/server/chunks/5152.js +0 -1
  651. package/.next-prod/server/chunks/5460.js +0 -201
  652. package/.next-prod/server/chunks/5481.js +0 -1
  653. package/.next-prod/server/chunks/5536.js +0 -148
  654. package/.next-prod/server/chunks/5733.js +0 -5
  655. package/.next-prod/server/chunks/582.js +0 -1
  656. package/.next-prod/server/chunks/5958.js +0 -1
  657. package/.next-prod/server/chunks/6117.js +0 -13
  658. package/.next-prod/server/chunks/6142.js +0 -287
  659. package/.next-prod/server/chunks/6346.js +0 -1
  660. package/.next-prod/server/chunks/6443.js +0 -1
  661. package/.next-prod/server/chunks/6804.js +0 -43
  662. package/.next-prod/server/chunks/7122.js +0 -1
  663. package/.next-prod/server/chunks/7265.js +0 -93
  664. package/.next-prod/server/chunks/7307.js +0 -1
  665. package/.next-prod/server/chunks/7483.js +0 -1
  666. package/.next-prod/server/chunks/7484.js +0 -64
  667. package/.next-prod/server/chunks/7800.js +0 -166
  668. package/.next-prod/server/chunks/8068.js +0 -63
  669. package/.next-prod/server/chunks/8351.js +0 -23
  670. package/.next-prod/server/chunks/8585.js +0 -198
  671. package/.next-prod/server/chunks/887.js +0 -215
  672. package/.next-prod/server/chunks/911.js +0 -1
  673. package/.next-prod/server/chunks/9116.js +0 -65
  674. package/.next-prod/server/chunks/925.js +0 -68
  675. package/.next-prod/server/chunks/9401.js +0 -1
  676. package/.next-prod/server/chunks/9408.js +0 -1
  677. package/.next-prod/static/chunks/1310.c38c5fbf05820fcd.js +0 -166
  678. package/.next-prod/static/chunks/1409.9f81cd6d2cab4b67.js +0 -1
  679. package/.next-prod/static/chunks/142.e09e154342f02da4.js +0 -4
  680. package/.next-prod/static/chunks/1590.05549e036336164c.js +0 -65
  681. package/.next-prod/static/chunks/1948.bf7e0d9ede202530.js +0 -29
  682. package/.next-prod/static/chunks/1987.226da043eabc8911.js +0 -5
  683. package/.next-prod/static/chunks/1991.d869abe5092c9011.js +0 -1
  684. package/.next-prod/static/chunks/2020.46a0112747939389.js +0 -1
  685. package/.next-prod/static/chunks/2235.b4453110c06e2b09.js +0 -1
  686. package/.next-prod/static/chunks/254.8b4308512ac955b5.js +0 -24
  687. package/.next-prod/static/chunks/2729.826909b4d5229ba6.js +0 -68
  688. package/.next-prod/static/chunks/2821.fa74c6e87f6e759a.js +0 -1
  689. package/.next-prod/static/chunks/2921.26016c4c7eb031e8.js +0 -1
  690. package/.next-prod/static/chunks/2ff9d716.93c18c265de76cfb.js +0 -136
  691. package/.next-prod/static/chunks/3126.c89ab7ce8e10978e.js +0 -1
  692. package/.next-prod/static/chunks/3530-49f50405e2b2a8c2.js +0 -14
  693. package/.next-prod/static/chunks/3613.9a37e282a0b018d7.js +0 -1
  694. package/.next-prod/static/chunks/3682.d8c0079db560c625.js +0 -1
  695. package/.next-prod/static/chunks/3700-1edddcc68c5c2ac3.js +0 -1
  696. package/.next-prod/static/chunks/3794-337d1ca25ad99a89.js +0 -2
  697. package/.next-prod/static/chunks/4699.8603b2742a761084.js +0 -1
  698. package/.next-prod/static/chunks/4892.1674cc00200143ba.js +0 -1
  699. package/.next-prod/static/chunks/4bd1b696-e5d7c65570c947b7.js +0 -1
  700. package/.next-prod/static/chunks/5019.2906d96e77b98f68.js +0 -198
  701. package/.next-prod/static/chunks/5139.83dc2c84aeea716b.js +0 -63
  702. package/.next-prod/static/chunks/5199.5faac6a2cc104a4c.js +0 -36
  703. package/.next-prod/static/chunks/5269.25d99df0164521ad.js +0 -23
  704. package/.next-prod/static/chunks/5325.aad15a16a5d57787.js +0 -1
  705. package/.next-prod/static/chunks/5364.2e5ba480c24d7854.js +0 -148
  706. package/.next-prod/static/chunks/5394.9d260f733e336357.js +0 -287
  707. package/.next-prod/static/chunks/54a60aa6-f60235f3d6b54466.js +0 -79
  708. package/.next-prod/static/chunks/5788.e5d5040b65e5edf3.js +0 -1
  709. package/.next-prod/static/chunks/6026.4027a04696ef04db.js +0 -1
  710. package/.next-prod/static/chunks/6108-df36466c7d900315.js +0 -1
  711. package/.next-prod/static/chunks/6383.ca3e074feb80c69c.js +0 -1
  712. package/.next-prod/static/chunks/6460.8ce93fe47320f6c5.js +0 -1
  713. package/.next-prod/static/chunks/6871.38519003bd87ac1c.js +0 -62
  714. package/.next-prod/static/chunks/6878-b27072ccf7fd4eba.js +0 -1
  715. package/.next-prod/static/chunks/6962.3bbd080592d4efa0.js +0 -64
  716. package/.next-prod/static/chunks/7084.921c9737b83f55eb.js +0 -1
  717. package/.next-prod/static/chunks/7085.b16e7c0e24741232.js +0 -215
  718. package/.next-prod/static/chunks/7443.124211e5abc05d3f.js +0 -93
  719. package/.next-prod/static/chunks/7479.433d3878625aba75.js +0 -24
  720. package/.next-prod/static/chunks/7547.54b68d37b50c2f21.js +0 -43
  721. package/.next-prod/static/chunks/7874.8db6929b94cdf697.js +0 -1
  722. package/.next-prod/static/chunks/8317.9c6f22e0c8cd07a8.js +0 -141
  723. package/.next-prod/static/chunks/8776.6fb12270eca03fd3.js +0 -149
  724. package/.next-prod/static/chunks/8863.4a09596cf95e996a.js +0 -82
  725. package/.next-prod/static/chunks/90542734.58d84d15ab7a8c98.js +0 -1
  726. package/.next-prod/static/chunks/9233.124321d2f404e01c.js +0 -1
  727. package/.next-prod/static/chunks/9318.ba24787a52cefe4c.js +0 -56
  728. package/.next-prod/static/chunks/9373.6206c440af44002a.js +0 -1
  729. package/.next-prod/static/chunks/af7f6608.85a7e1eb0d4130b0.js +0 -53
  730. package/.next-prod/static/chunks/app/_global-error/page-f626fdfbc87b7a2c.js +0 -1
  731. package/.next-prod/static/chunks/app/api/bash/route-f626fdfbc87b7a2c.js +0 -1
  732. package/.next-prod/static/chunks/app/api/chat/codex/route-f626fdfbc87b7a2c.js +0 -1
  733. package/.next-prod/static/chunks/app/api/chat/kimi/route-f626fdfbc87b7a2c.js +0 -1
  734. package/.next-prod/static/chunks/app/api/chat/ollama/route-f626fdfbc87b7a2c.js +0 -1
  735. package/.next-prod/static/chunks/app/api/chat/route-f626fdfbc87b7a2c.js +0 -1
  736. package/.next-prod/static/chunks/app/api/claude-stats/route-f626fdfbc87b7a2c.js +0 -1
  737. package/.next-prod/static/chunks/app/api/commands/route-f626fdfbc87b7a2c.js +0 -1
  738. package/.next-prod/static/chunks/app/api/comments/route-f626fdfbc87b7a2c.js +0 -1
  739. package/.next-prod/static/chunks/app/api/db/columns/route-f626fdfbc87b7a2c.js +0 -1
  740. package/.next-prod/static/chunks/app/api/db/connect/route-f626fdfbc87b7a2c.js +0 -1
  741. package/.next-prod/static/chunks/app/api/db/disconnect/route-f626fdfbc87b7a2c.js +0 -1
  742. package/.next-prod/static/chunks/app/api/db/export/route-f626fdfbc87b7a2c.js +0 -1
  743. package/.next-prod/static/chunks/app/api/db/query/route-f626fdfbc87b7a2c.js +0 -1
  744. package/.next-prod/static/chunks/app/api/db/schemas/route-f626fdfbc87b7a2c.js +0 -1
  745. package/.next-prod/static/chunks/app/api/extension/version/route-f626fdfbc87b7a2c.js +0 -1
  746. package/.next-prod/static/chunks/app/api/file/route-f626fdfbc87b7a2c.js +0 -1
  747. package/.next-prod/static/chunks/app/api/files/blame/route-f626fdfbc87b7a2c.js +0 -1
  748. package/.next-prod/static/chunks/app/api/files/clipboard/route-f626fdfbc87b7a2c.js +0 -1
  749. package/.next-prod/static/chunks/app/api/files/copy/route-f626fdfbc87b7a2c.js +0 -1
  750. package/.next-prod/static/chunks/app/api/files/delete/route-f626fdfbc87b7a2c.js +0 -1
  751. package/.next-prod/static/chunks/app/api/files/expanded/route-f626fdfbc87b7a2c.js +0 -1
  752. package/.next-prod/static/chunks/app/api/files/index/route-f626fdfbc87b7a2c.js +0 -1
  753. package/.next-prod/static/chunks/app/api/files/init/route-f626fdfbc87b7a2c.js +0 -1
  754. package/.next-prod/static/chunks/app/api/files/paste/route-f626fdfbc87b7a2c.js +0 -1
  755. package/.next-prod/static/chunks/app/api/files/read/route-f626fdfbc87b7a2c.js +0 -1
  756. package/.next-prod/static/chunks/app/api/files/readdir/route-f626fdfbc87b7a2c.js +0 -1
  757. package/.next-prod/static/chunks/app/api/files/recent/route-f626fdfbc87b7a2c.js +0 -1
  758. package/.next-prod/static/chunks/app/api/files/save/route-f626fdfbc87b7a2c.js +0 -1
  759. package/.next-prod/static/chunks/app/api/files/search/route-f626fdfbc87b7a2c.js +0 -1
  760. package/.next-prod/static/chunks/app/api/git/branch-diff/route-f626fdfbc87b7a2c.js +0 -1
  761. package/.next-prod/static/chunks/app/api/git/branches/route-f626fdfbc87b7a2c.js +0 -1
  762. package/.next-prod/static/chunks/app/api/git/commit-diff/route-f626fdfbc87b7a2c.js +0 -1
  763. package/.next-prod/static/chunks/app/api/git/commits/route-f626fdfbc87b7a2c.js +0 -1
  764. package/.next-prod/static/chunks/app/api/git/diff/route-f626fdfbc87b7a2c.js +0 -1
  765. package/.next-prod/static/chunks/app/api/git/discard/route-f626fdfbc87b7a2c.js +0 -1
  766. package/.next-prod/static/chunks/app/api/git/stage/route-f626fdfbc87b7a2c.js +0 -1
  767. package/.next-prod/static/chunks/app/api/git/status/route-f626fdfbc87b7a2c.js +0 -1
  768. package/.next-prod/static/chunks/app/api/git/unstage/route-f626fdfbc87b7a2c.js +0 -1
  769. package/.next-prod/static/chunks/app/api/git/worktree/route-f626fdfbc87b7a2c.js +0 -1
  770. package/.next-prod/static/chunks/app/api/global-state/route-f626fdfbc87b7a2c.js +0 -1
  771. package/.next-prod/static/chunks/app/api/jupyter/load/route-f626fdfbc87b7a2c.js +0 -1
  772. package/.next-prod/static/chunks/app/api/jupyter/save/route-f626fdfbc87b7a2c.js +0 -1
  773. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-f626fdfbc87b7a2c.js +0 -1
  774. package/.next-prod/static/chunks/app/api/lsp/definition/route-f626fdfbc87b7a2c.js +0 -1
  775. package/.next-prod/static/chunks/app/api/lsp/hover/route-f626fdfbc87b7a2c.js +0 -1
  776. package/.next-prod/static/chunks/app/api/lsp/references/route-f626fdfbc87b7a2c.js +0 -1
  777. package/.next-prod/static/chunks/app/api/lsp/status/route-f626fdfbc87b7a2c.js +0 -1
  778. package/.next-prod/static/chunks/app/api/lsp/warmup/route-f626fdfbc87b7a2c.js +0 -1
  779. package/.next-prod/static/chunks/app/api/mysql/columns/route-f626fdfbc87b7a2c.js +0 -1
  780. package/.next-prod/static/chunks/app/api/mysql/connect/route-f626fdfbc87b7a2c.js +0 -1
  781. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-f626fdfbc87b7a2c.js +0 -1
  782. package/.next-prod/static/chunks/app/api/mysql/export/route-f626fdfbc87b7a2c.js +0 -1
  783. package/.next-prod/static/chunks/app/api/mysql/query/route-f626fdfbc87b7a2c.js +0 -1
  784. package/.next-prod/static/chunks/app/api/mysql/schemas/route-f626fdfbc87b7a2c.js +0 -1
  785. package/.next-prod/static/chunks/app/api/neo4j/connect/route-f626fdfbc87b7a2c.js +0 -1
  786. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-f626fdfbc87b7a2c.js +0 -1
  787. package/.next-prod/static/chunks/app/api/neo4j/query/route-f626fdfbc87b7a2c.js +0 -1
  788. package/.next-prod/static/chunks/app/api/neo4j/schema/route-f626fdfbc87b7a2c.js +0 -1
  789. package/.next-prod/static/chunks/app/api/note/route-f626fdfbc87b7a2c.js +0 -1
  790. package/.next-prod/static/chunks/app/api/ollama/models/route-f626fdfbc87b7a2c.js +0 -1
  791. package/.next-prod/static/chunks/app/api/ollama/start/route-f626fdfbc87b7a2c.js +0 -1
  792. package/.next-prod/static/chunks/app/api/open-cursor/route-f626fdfbc87b7a2c.js +0 -1
  793. package/.next-prod/static/chunks/app/api/open-vscode/route-f626fdfbc87b7a2c.js +0 -1
  794. package/.next-prod/static/chunks/app/api/pick-folder/route-f626fdfbc87b7a2c.js +0 -1
  795. package/.next-prod/static/chunks/app/api/pinned-sessions/route-f626fdfbc87b7a2c.js +0 -1
  796. package/.next-prod/static/chunks/app/api/project-settings/route-f626fdfbc87b7a2c.js +0 -1
  797. package/.next-prod/static/chunks/app/api/project-state/route-f626fdfbc87b7a2c.js +0 -1
  798. package/.next-prod/static/chunks/app/api/projects/route-f626fdfbc87b7a2c.js +0 -1
  799. package/.next-prod/static/chunks/app/api/redis/command/route-f626fdfbc87b7a2c.js +0 -1
  800. package/.next-prod/static/chunks/app/api/redis/connect/route-f626fdfbc87b7a2c.js +0 -1
  801. package/.next-prod/static/chunks/app/api/redis/delete/route-f626fdfbc87b7a2c.js +0 -1
  802. package/.next-prod/static/chunks/app/api/redis/disconnect/route-f626fdfbc87b7a2c.js +0 -1
  803. package/.next-prod/static/chunks/app/api/redis/get/route-f626fdfbc87b7a2c.js +0 -1
  804. package/.next-prod/static/chunks/app/api/redis/keys/route-f626fdfbc87b7a2c.js +0 -1
  805. package/.next-prod/static/chunks/app/api/redis/set/route-f626fdfbc87b7a2c.js +0 -1
  806. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-f626fdfbc87b7a2c.js +0 -1
  807. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-f626fdfbc87b7a2c.js +0 -1
  808. package/.next-prod/static/chunks/app/api/review/[id]/route-f626fdfbc87b7a2c.js +0 -1
  809. package/.next-prod/static/chunks/app/api/review/identify/route-f626fdfbc87b7a2c.js +0 -1
  810. package/.next-prod/static/chunks/app/api/review/order/route-f626fdfbc87b7a2c.js +0 -1
  811. package/.next-prod/static/chunks/app/api/review/route-f626fdfbc87b7a2c.js +0 -1
  812. package/.next-prod/static/chunks/app/api/review/share-info/route-f626fdfbc87b7a2c.js +0 -1
  813. package/.next-prod/static/chunks/app/api/review/users/route-f626fdfbc87b7a2c.js +0 -1
  814. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-f626fdfbc87b7a2c.js +0 -1
  815. package/.next-prod/static/chunks/app/api/services/config/route-f626fdfbc87b7a2c.js +0 -1
  816. package/.next-prod/static/chunks/app/api/services/scripts/route-f626fdfbc87b7a2c.js +0 -1
  817. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-f626fdfbc87b7a2c.js +0 -1
  818. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-f626fdfbc87b7a2c.js +0 -1
  819. package/.next-prod/static/chunks/app/api/session-by-path/route-f626fdfbc87b7a2c.js +0 -1
  820. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-f626fdfbc87b7a2c.js +0 -1
  821. package/.next-prod/static/chunks/app/api/sessions/projects/route-f626fdfbc87b7a2c.js +0 -1
  822. package/.next-prod/static/chunks/app/api/sessions/route-f626fdfbc87b7a2c.js +0 -1
  823. package/.next-prod/static/chunks/app/api/settings/route-f626fdfbc87b7a2c.js +0 -1
  824. package/.next-prod/static/chunks/app/api/skills/[id]/route-f626fdfbc87b7a2c.js +0 -1
  825. package/.next-prod/static/chunks/app/api/skills/content/route-f626fdfbc87b7a2c.js +0 -1
  826. package/.next-prod/static/chunks/app/api/skills/route-f626fdfbc87b7a2c.js +0 -1
  827. package/.next-prod/static/chunks/app/api/terminal/aliases/route-f626fdfbc87b7a2c.js +0 -1
  828. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-f626fdfbc87b7a2c.js +0 -1
  829. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-f626fdfbc87b7a2c.js +0 -1
  830. package/.next-prod/static/chunks/app/api/terminal/env/route-f626fdfbc87b7a2c.js +0 -1
  831. package/.next-prod/static/chunks/app/api/terminal/history/route-f626fdfbc87b7a2c.js +0 -1
  832. package/.next-prod/static/chunks/app/api/version/route-f626fdfbc87b7a2c.js +0 -1
  833. package/.next-prod/static/chunks/app/manifest.webmanifest/route-f626fdfbc87b7a2c.js +0 -1
  834. package/.next-prod/static/chunks/app/project/page-ff9fb0aaf89c8457.js +0 -29
  835. package/.next-prod/static/chunks/app/review/[id]/page-be83af23e89a03f9.js +0 -1
  836. package/.next-prod/static/chunks/d3ac728e-d1ae8819b8f0be6a.js +0 -1
  837. package/.next-prod/static/chunks/framework-81b2e59ffe13bb24.js +0 -1
  838. package/.next-prod/static/chunks/main-ac50dc1e450895a2.js +0 -5
  839. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-f626fdfbc87b7a2c.js +0 -1
  840. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-f626fdfbc87b7a2c.js +0 -1
  841. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-f626fdfbc87b7a2c.js +0 -1
  842. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-f626fdfbc87b7a2c.js +0 -1
  843. package/.next-prod/static/chunks/webpack-0f527ee7ab644d02.js +0 -1
  844. package/.next-prod/static/css/75f39a8350e8177f.css +0 -3
  845. package/.next-prod/static/s6yDo5HSYaSgHWRvF1qFE/_buildManifest.js +0 -1
  846. /package/.next-prod/static/{s6yDo5HSYaSgHWRvF1qFE → smsKM7xQ0sAR3fsFWgImc}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2951],{7482:(e,t,r)=>{Promise.resolve().then(r.bind(r,97899))},97899:(e,t,r)=>{"use strict";r.d(t,{ReviewPage:()=>E});var n=r(95155),o=r(12115),s=r(79114),i=r(26108),l=r(94002),a=r(72816),d=r(95766);function c({selectedText:e,position:t,onSubmit:r,onCancel:i}){let{t:l}=(0,s.Bd)(),[a,d]=(0,o.useState)(""),c=(0,o.useRef)(null),u=(0,o.useRef)(null);(0,o.useEffect)(()=>{c.current?.focus()},[]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&i()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i]),(0,o.useEffect)(()=>{let e=e=>{!u.current||u.current.contains(e.target)||a.trim()||i()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[a,i]);let x=()=>{let e=a.trim();e&&r(e)},m=e.length>60?e.slice(0,57)+"...":e;return(0,n.jsxs)("div",{ref:u,className:"absolute z-50 w-96 bg-card border border-border rounded-lg shadow-lg",style:{top:t.top,left:Math.max(8,t.left-192)},children:[(0,n.jsxs)("div",{className:"px-3 pt-3 pb-2",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:l("review.selectedText")}),(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r truncate",children:m})]}),(0,n.jsx)("div",{className:"px-3 pb-2",children:(0,n.jsx)("textarea",{ref:c,value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),x())},placeholder:l("review.addCommentPlaceholder"),className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:4})}),(0,n.jsxs)("div",{className:"px-3 pb-3 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:l("review.enterSubmitHint")}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)("button",{onClick:i,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:l("common.cancel")}),(0,n.jsx)("button",{onClick:x,disabled:!a.trim(),className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:l("review.commentBtn")})]})]})]})}let u={bg:"rgba(234, 179, 8, 0.15)",bgActive:"rgba(234, 179, 8, 0.4)",bgPending:"rgba(234, 179, 8, 0.3)",border:"rgba(234, 179, 8, 0.7)",borderPending:"rgba(234, 179, 8, 0.9)"},x={bg:"rgba(234, 179, 8, 0.1)",bgActive:"rgba(234, 179, 8, 0.3)",bgPending:"rgba(234, 179, 8, 0.2)",border:"rgba(234, 179, 8, 0.5)",borderPending:"rgba(234, 179, 8, 0.7)"};function m({rects:e,activeCommentId:t,pendingCommentId:r,isDark:o}){if(0===e.length)return null;let s=o?x:u;return(0,n.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:0,overflow:"visible",pointerEvents:"none",zIndex:5},children:e.map((e,o)=>{let i=e.commentId===t,l=e.commentId===r,a=s.bg;return l?a=s.bgPending:i&&(a=s.bgActive),(0,n.jsx)("div",{"data-comment-id":e.commentId,style:{position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,backgroundColor:a,borderBottom:`1px solid ${l?s.borderPending:s.border}`,borderRadius:1,pointerEvents:"none"}},`${e.commentId}-${o}`)})})}let h=[d.W];function f({content:e,comments:t,activeCommentId:r,isActive:s,onAddComment:d,onHighlightClick:u,scrollToHighlightRef:x}){let{resolvedTheme:f}=(0,a.D)(),p=(0,o.useRef)(null),v=(0,o.useRef)(null),[g,b]=(0,o.useState)(null),{rects:w,scrollToHighlight:j}=function(e,t,r,n){let[s,i]=(0,o.useState)([]),l=(0,o.useRef)(0),a=(0,o.useRef)(r);(0,o.useEffect)(()=>{a.current=r},[r]);let d=(0,o.useCallback)(()=>{l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{let r=e.current,n=t.current;if(!r||!n)return;let o=function(e,t,r){let n=[],o=t.getBoundingClientRect(),s=function(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;r.nextNode();){let e=r.currentNode,o=e.textContent?.length||0;t.push({node:e,start:n,end:n+o}),n+=o}return t}(e);if(0===s.length)return n;for(let e of r){let{startOffset:r,endOffset:i}=e.anchor;if(r>=i)continue;let l=null,a=0,d=null,c=0;for(let{node:e,start:t,end:n}of s)if(!l&&r>=t&&r<n&&(l=e,a=r-t),i>t&&i<=n){d=e,c=i-t;break}if(!l||!d)continue;let u=document.createRange();try{u.setStart(l,a),u.setEnd(d,c)}catch{continue}for(let r of u.getClientRects())r.width<1||r.height<1||n.push({commentId:e.id,top:r.top-o.top+t.scrollTop,left:r.left-o.left+t.scrollLeft,width:r.width,height:r.height})}return n}(r,n,a.current);i(e=>e.length===o.length&&e.every((e,t)=>e.commentId===o[t].commentId&&.5>Math.abs(e.top-o[t].top)&&.5>Math.abs(e.left-o[t].left)&&.5>Math.abs(e.width-o[t].width)&&.5>Math.abs(e.height-o[t].height))?e:o)})},[e,t]);(0,o.useEffect)(()=>{d()},[r,n,d]),(0,o.useEffect)(()=>{let t=e.current;if(!t)return;let r=new MutationObserver(()=>d());return r.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[e,d]),(0,o.useEffect)(()=>{let t=e.current;if(!t)return;let r=new ResizeObserver(()=>d());return r.observe(t),()=>r.disconnect()},[e,d]),(0,o.useEffect)(()=>()=>{l.current&&cancelAnimationFrame(l.current)},[]);let c=(0,o.useCallback)(e=>{let r=t.current;if(!r)return;let n=s.find(t=>t.commentId===e);if(!n)return;let o=r.clientHeight;r.scrollTo({top:n.top-o/2+n.height/2,behavior:"smooth"})},[t,s]);return{rects:s,scrollToHighlight:c}}(p,v,(0,o.useMemo)(()=>g?[...t,{id:"__pending__",author:"",authorId:"",content:"",anchor:g.anchor,createdAt:0,replies:[]}]:t,[t,g]),r);(0,o.useEffect)(()=>{x.current=j},[j,x]);let y=(0,o.useRef)(w);(0,o.useEffect)(()=>{y.current=w},[w]);let k=(0,o.useCallback)(e=>{let t=window.getSelection(),r=t&&!t.isCollapsed;if(r&&s&&p.current){let r=t.getRangeAt(0);if(p.current.contains(r.startContainer)&&p.current.contains(r.endContainer)){let n=function(e,t){let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0,o=-1,s=-1;for(;r.nextNode();){let e=r.currentNode,i=e.textContent?.length||0;if(e===t.startContainer&&(o=n+t.startOffset),e===t.endContainer){s=n+t.endOffset;break}n+=i}if(-1===o||-1===s||o>=s)return null;let i=e.textContent?.slice(o,s)||"";return i.trim()?{startOffset:o,endOffset:s,selectedText:i}:null}(p.current,r);if(n){let r=v.current??p.current.parentElement,o=r.getBoundingClientRect();b({anchor:n,position:{top:e.clientY-o.top+r.scrollTop+8,left:e.clientX-o.left}}),t.removeAllRanges();return}}}if(!r&&!g){let t=v.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left+t.scrollLeft,o=e.clientY-r.top+t.scrollTop;for(let e of y.current)if("__pending__"!==e.commentId&&n>=e.left&&n<=e.left+e.width&&o>=e.top&&o<=e.top+e.height)return void u(e.commentId)}},[s,g,u]),C=(0,o.useCallback)(e=>{g&&(d(e,g.anchor),b(null),window.getSelection()?.removeAllRanges())},[g,d]),N=(0,o.useCallback)(()=>{b(null),window.getSelection()?.removeAllRanges()},[]);return(0,n.jsxs)("div",{className:"h-full flex bg-card",children:[(0,n.jsx)(l.l,{content:e,containerRef:v}),(0,n.jsxs)("div",{ref:v,className:"flex-1 overflow-auto relative",onMouseUp:k,children:[(0,n.jsx)("div",{ref:p,className:"p-6 review-markdown-container",children:(0,n.jsx)(i.T,{content:e,rehypePlugins:h})}),(0,n.jsx)(m,{rects:w,activeCommentId:r,pendingCommentId:g?"__pending__":null,isDark:"dark"===f}),g&&(0,n.jsx)(c,{selectedText:g.anchor.selectedText,position:g.position,onSubmit:C,onCancel:N})]})]})}var p=r(87918);function v(e){let t=new Date(e),r=Math.floor((new Date().getTime()-t.getTime())/6e4);if(r<1)return p.A.t("common.justNow");if(r<60)return p.A.t("common.minutesAgo",{count:r});let n=Math.floor(r/60);if(n<24)return p.A.t("common.hoursAgo",{count:n});let o=Math.floor(n/24);return o<7?p.A.t("common.daysAgo",{count:o}):t.toLocaleDateString()}let g=(0,o.forwardRef)(function({comment:e,isActive:t,isOwnComment:r,isAdmin:i,currentAuthorId:l,canInteract:a,userNameMap:d,onClick:c,onDelete:u,onEdit:x,onToggleClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p},g){let{t:b}=(0,s.Bd)(),w=(e,t)=>d[e]||t,[j,y]=(0,o.useState)(""),[k,C]=(0,o.useState)(!1),[N,E]=(0,o.useState)(!1),[S,R]=(0,o.useState)(""),[T,I]=(0,o.useState)(null),[L,A]=(0,o.useState)(""),D=()=>{let e=j.trim();e&&(h(e),y(""),C(!1))},M=()=>{let t=S.trim();t&&t!==e.content&&x(t),E(!1)},P=()=>{if(!T)return;let t=L.trim(),r=e.replies.find(e=>e.id===T);!t||r&&t===r.content||p(T,t),I(null)},O=e.anchor.selectedText.length>80?e.anchor.selectedText.slice(0,77)+"...":e.anchor.selectedText,$=i||r||a;return e.closed?(0,n.jsxs)("div",{ref:g,className:"rounded-lg border border-border/50 bg-card/50 opacity-60 hover:opacity-80 transition-all cursor-pointer px-3 py-2 flex items-center gap-2",onClick:c,children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate flex-1",children:O}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 flex-shrink-0",children:b("review.closedLabel")}),$&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!1)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors flex-shrink-0",title:b("review.reopenReview"),children:b("review.reopen")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors flex-shrink-0",title:b("review.deleteComment"),children:b("common.delete")})]}):(0,n.jsxs)("div",{ref:g,className:`rounded-lg border transition-all cursor-pointer ${t?"border-brand bg-brand/5 shadow-sm":"border-border bg-card hover:border-muted-foreground/30"}`,onClick:c,children:[(0,n.jsx)("div",{className:"px-3 pt-3 pb-1",children:(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r text-muted-foreground truncate",children:O})}),(0,n.jsxs)("div",{className:"px-3 pt-2 flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:v(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),!N&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[$&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.closeComment"),children:b("review.closeComment")}),r&&a&&(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),R(e.content),E(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editComment"),children:b("common.edit")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteComment"),children:b("common.delete")})]})]}),(0,n.jsx)("div",{className:"px-3 pt-1 pb-2",children:N?(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:S,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),M()),"Escape"===e.key&&E(!1)},className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:3,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>E(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:M,disabled:!S.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})}),e.replies.length>0&&(0,n.jsx)("div",{className:"mx-3 border-t border-border",children:e.replies.map(e=>(0,n.jsxs)("div",{className:"py-2 border-b border-border last:border-b-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-accent text-muted-foreground flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:v(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),T!==e.id&&(e.authorId===l&&a||i)&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[e.authorId===l&&a&&(0,n.jsx)("button",{onClick:t=>{var r;t.stopPropagation(),r=e.id,A(e.content),I(r)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editReply"),children:b("common.edit")}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),f(e.id)},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteReply"),children:b("common.delete")})]})]}),T===e.id?(0,n.jsxs)("div",{className:"mt-1 pl-6",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:L,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),P()),"Escape"===e.key&&I(null)},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>I(null),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:P,disabled:!L.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm mt-0.5 pl-6 whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})]},e.id))}),(0,n.jsx)("div",{className:"px-3 pb-2 pt-1",children:k?(0,n.jsxs)("div",{className:"mt-1",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:j,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),D()),"Escape"===e.key&&C(!1)},placeholder:b("review.replyPlaceholder"),className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>C(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:D,disabled:!j.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("review.reply")})]})]}):a&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),C(!0)},className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:b("review.reply")})})]})});function b({comments:e,activeCommentId:t,currentAuthorId:r,isActive:i,isAdmin:l,userNameMap:a,onCommentClick:d,onNavigateComment:c,onDeleteComment:u,onEditComment:x,onToggleCommentClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p,scrollToCommentRef:v}){let{t:b}=(0,s.Bd)(),w=(0,o.useRef)(new Map),j=(0,o.useRef)(null),y=(0,o.useCallback)(e=>{let t=w.current.get(e);t&&t.scrollIntoView({behavior:"smooth",block:"center"})},[]);(0,o.useEffect)(()=>{v.current=y},[y,v]);let k=[...e].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset);return(0,n.jsxs)("div",{ref:j,className:"h-full flex flex-col bg-card",children:[(0,n.jsxs)("div",{className:"px-4 py-2 bg-secondary border-b border-border flex-shrink-0 flex items-center",children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:0===e.length?b("review.selectTextToComment"):t?b("review.commentsNavCount",{current:k.findIndex(e=>e.id===t)+1,total:e.length}):b("review.commentsCount",{count:e.length})}),e.length>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1 ml-2",children:[(0,n.jsxs)("button",{onClick:()=>c("prev"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:b("review.prevComment"),children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})}),b("review.prevComment")]}),(0,n.jsxs)("button",{onClick:()=>c("next"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:b("review.nextComment"),children:[b("review.nextComment"),(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})]})]})]}),(0,n.jsx)("div",{className:"flex-1 overflow-auto",children:0===k.length?(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-2xl mb-2",children:"\uD83D\uDCAC"}),(0,n.jsx)("div",{children:b("review.selectTextHint")})]})}):(0,n.jsx)("div",{className:"p-3 space-y-3",children:k.map(e=>(0,n.jsx)(g,{ref:t=>{t?w.current.set(e.id,t):w.current.delete(e.id)},comment:e,isActive:e.id===t,isOwnComment:e.authorId===r,isAdmin:l,currentAuthorId:r,canInteract:i,userNameMap:a,onClick:()=>d(e.id),onDelete:()=>u(e.id),onEdit:t=>x(e.id,t),onToggleClosed:t=>m(e.id,t),onAddReply:t=>h(e.id,t),onDeleteReply:t=>f(e.id,t),onEditReply:(t,r)=>p(e.id,t,r)},e.id))})})]})}function w({identity:e}){let{t}=(0,s.Bd)(),[r,i]=(0,o.useState)(!1),[l,a]=(0,o.useState)(""),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!r)return;let e=e=>{d.current&&!d.current.contains(e.target)&&i(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]);let c=()=>{let t=l.trim();t&&t!==e.name&&e.confirmName(t),i(!1)};return(0,n.jsxs)("div",{className:"relative",ref:d,children:[(0,n.jsxs)("button",{onClick:()=>{r||a(e.name),i(!r)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors flex items-center gap-1",title:t("review.identitySettings"),children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold",children:e.name.charAt(0)}),(0,n.jsx)("span",{className:"text-muted-foreground",children:e.name})]}),r&&(0,n.jsxs)("div",{className:"absolute right-0 top-full mt-1 w-56 bg-card border border-border rounded-lg shadow-lg p-3 z-50",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:t("review.reviewNickname")}),(0,n.jsx)("input",{type:"text",value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||c()},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,n.jsx)("button",{onClick:()=>{e.randomize(),i(!1)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.random")}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("button",{onClick:()=>i(!1),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("common.cancel")}),(0,n.jsx)("button",{onClick:c,className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors",children:t("common.save")})]})]})]})}function j({currentReviewId:e,onSelect:t,readOnly:r,refreshTrigger:i,onViewComments:l}){let{t:a}=(0,s.Bd)(),[d,c]=(0,o.useState)([]),[u,x]=(0,o.useState)(null),[m,h]=(0,o.useState)(null),[f,p]=(0,o.useState)(!1),[v,g]=(0,o.useState)(null),b=(0,o.useRef)(null),[w,j]=(0,o.useState)(null),y=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/review");if(e.ok){let t=await e.json();c(t.reviews||[])}}catch{}},[]);(0,o.useEffect)(()=>{queueMicrotask(()=>y())},[y]),(0,o.useEffect)(()=>{queueMicrotask(()=>y())},[e,i,y]);let k=(0,o.useCallback)(async(e,t,r)=>{if(e.stopPropagation(),!m){h(t);try{(await fetch(`/api/review/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({active:!r})})).ok&&c(e=>e.map(e=>e.id===t?{...e,active:!r}:e))}catch{}h(null)}},[m]),C=(0,o.useCallback)(async(r,n)=>{if(r.stopPropagation(),!u){x(n);try{if((await fetch(`/api/review/${n}`,{method:"DELETE"})).ok&&(c(e=>e.filter(e=>e.id!==n)),n===e)){let e=d.filter(e=>e.id!==n);e.length>0&&t(e[0].id)}}catch{}x(null)}},[u,e,d,t]),N=(0,o.useCallback)((e,t)=>{b.current=t,e.dataTransfer.effectAllowed="move";let r=e.currentTarget;requestAnimationFrame(()=>r.classList.add("opacity-30"))},[]),E=(0,o.useCallback)(e=>{b.current=null,j(null),e.currentTarget instanceof HTMLElement&&e.currentTarget.classList.remove("opacity-30")},[]),S=(0,o.useCallback)((e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",b.current&&b.current!==t&&j(t)},[]),R=(0,o.useCallback)(async(e,t)=>{e.preventDefault(),j(null);let r=b.current;b.current=null,r&&r!==t&&c(e=>{let n=[...e],o=n.findIndex(e=>e.id===r),s=n.findIndex(e=>e.id===t);if(-1===o||-1===s)return e;let[i]=n.splice(o,1);return n.splice(s,0,i),fetch("/api/review/order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:n.map(e=>e.id)})}).catch(()=>{}),n})},[]),T=r?d.filter(e=>e.active):d,I=!r;return f?(0,n.jsxs)("div",{className:"h-full flex flex-col items-center bg-secondary/50 w-9 flex-shrink-0 border-r border-border",children:[(0,n.jsx)("button",{onClick:()=>p(!1),className:"p-1.5 mt-2 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:a("review.expandList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 mt-2",style:{writingMode:"vertical-rl"},children:r?a("review.nDocs",{count:T.length}):a("review.nReviews",{count:T.length})})]}):(0,n.jsxs)("div",{className:"h-full flex flex-col bg-secondary/50 w-[200px] flex-shrink-0 border-r border-border",children:[(0,n.jsxs)("div",{className:"px-3 py-2 border-b border-border flex-shrink-0 flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r?a("review.docList"):a("review.allReviewsList")}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground/60 ml-1.5",children:T.length})]}),(0,n.jsx)("button",{onClick:()=>p(!0),className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:a("review.collapseList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})})})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[T.map(o=>(0,n.jsxs)("div",{draggable:I,onDragStart:I?e=>N(e,o.id):void 0,onDragEnd:I?E:void 0,onDragOver:I?e=>S(e,o.id):void 0,onDrop:I?e=>R(e,o.id):void 0,onMouseEnter:e=>{let t=e.currentTarget.getBoundingClientRect();g({id:o.id,text:o.title,top:t.top+t.height/2,left:t.right})},onMouseLeave:()=>g(e=>e?.id===o.id?null:e),onClick:()=>t(o.id),className:`group px-3 py-2 cursor-pointer border-b transition-colors ${w===o.id?"border-b-brand border-t border-t-transparent":"border-b-border/50"} ${o.id===e?"bg-accent/60":"hover:bg-accent/30"}`,children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[!r&&(0,n.jsx)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${o.active?"bg-green-500":"bg-muted-foreground/40"}`}),(0,n.jsx)("span",{className:"text-xs truncate flex-1",children:o.title}),o.commentCount>0&&l&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),l(o.id)},className:"flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-brand hover:!bg-brand/10 transition-colors",title:a("review.viewComments"),children:(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})})}),!r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:e=>k(e,o.id,o.active),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-foreground hover:!bg-accent transition-colors ${m===o.id?"opacity-50 pointer-events-none":""}`,title:o.active?a("review.closeReview"):a("review.reopenReview"),children:o.active?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64a9 9 0 1 1-12.73 0"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64A9 9 0 0 1 12 21 9 9 0 0 1 5.64 6.64"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]})}),(0,n.jsx)("button",{onClick:e=>C(e,o.id),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-red-500 hover:!bg-red-500/10 transition-colors ${u===o.id?"opacity-50 pointer-events-none":""}`,title:a("review.deleteReview"),children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})]}),o.commentCount>0&&(0,n.jsx)("div",{className:`text-[10px] text-muted-foreground/50 mt-0.5 ${r?"":"pl-3"}`,children:a("review.nComments",{count:o.commentCount})})]},o.id)),0===T.length&&(0,n.jsx)("div",{className:"px-3 py-4 text-xs text-muted-foreground/50 text-center",children:r?a("review.noOpenDocs"):a("review.noReviews")})]}),v&&(0,n.jsx)("div",{className:"fixed z-50 px-2 py-1 text-xs bg-popover text-popover-foreground border border-border rounded shadow-md whitespace-nowrap pointer-events-none",style:{top:v.top,left:v.left+8,transform:"translateY(-50%)"},children:v.text})]})}function y({currentName:e,onConfirm:t,onSkip:r}){let{t:i}=(0,s.Bd)(),[l,a]=(0,o.useState)(e),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{d.current?.select()},[]);let c=()=>{let e=l.trim();e&&t(e)};return(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:(0,n.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-2xl w-80 p-5",children:[(0,n.jsx)("h2",{className:"text-base font-semibold mb-1",children:i("review.setNickname")}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mb-4",children:i("review.nicknameHint")}),(0,n.jsx)("input",{ref:d,type:"text",value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||c(),"Escape"===e.key&&r()},placeholder:i("review.nicknamePlaceholder"),maxLength:20,className:"w-full px-3 py-2 text-sm bg-secondary border border-border rounded-lg focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 mt-4",children:[(0,n.jsx)("button",{onClick:r,className:"px-3 py-1.5 text-xs rounded-lg hover:bg-accent transition-colors text-muted-foreground",children:i("review.skipForNow")}),(0,n.jsx)("button",{onClick:c,disabled:!l.trim(),className:"px-4 py-1.5 text-xs rounded-lg bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:i("common.save")})]})]})})}var k=r(24750);function C(){let e=p.A.t("reviewUtils.adjectives",{returnObjects:!0}),t=p.A.t("reviewUtils.nouns",{returnObjects:!0}),r=e[Math.floor(Math.random()*e.length)],n=t[Math.floor(Math.random()*t.length)];return`${r}${n}`}r(34015);var N=r(38093);function E({reviewId:e}){let{t}=(0,s.Bd)(),[r,i]=(0,o.useState)(e),[l,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!0),[x,m]=(0,o.useState)(null),[h,p]=(0,o.useState)(null),[v,g]=(0,o.useState)(!1),E=function(){let[e,t]=(0,o.useState)(""),[r,n]=(0,o.useState)(""),[s,i]=(0,o.useState)(!1),[l,a]=(0,o.useState)(!0);(0,o.useEffect)(()=>{fetch("/api/review/identify").then(e=>e.ok?e.json():null).then(e=>{e?.authorId?(t(e.authorId),e.name?(n(e.name),i(!0)):(n(C()),i(!1))):(t(Math.random().toString(36).slice(2,10)),n(C()),i(!1))}).catch(()=>{t(Math.random().toString(36).slice(2,10)),n(C()),i(!1)}).finally(()=>a(!1))},[]);let d=(0,o.useCallback)(e=>{let t=e.trim();t&&(n(t),i(!0),fetch("/api/review/identify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).catch(()=>{}))},[]);return{authorId:e,name:r,nameConfirmed:s,loading:l,setName:(0,o.useCallback)(e=>{let t=e.trim();t&&(n(t),fetch("/api/review/identify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).catch(()=>{}))},[]),confirmName:d,randomize:(0,o.useCallback)(()=>{n(C())},[])}}(),{resolvedTheme:S,setTheme:R}=(0,a.D)(),[T,I]=(0,o.useState)({}),[L,A]=(0,o.useState)(!1),[D,M]=(0,o.useState)(!1),P=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/review/users");if(e.ok){let t=await e.json(),r={};for(let[e,n]of Object.entries(t.users))r[e]=n.name;I(r)}}catch{}},[]);(0,o.useEffect)(()=>{P()},[P]),(0,o.useEffect)(()=>{E.loading||!E.authorId||E.nameConfirmed||A(!0)},[E.loading,E.authorId,E.nameConfirmed]),(0,o.useEffect)(()=>{g("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname)},[]),(0,o.useEffect)(()=>{let e=localStorage.getItem("theme");e&&"system"!==e||R("dark")},[R]);let O=(0,o.useRef)(void 0),$=(0,o.useRef)(void 0),B=(0,o.useCallback)(e=>{e!==r&&(i(e),m(null),p(null),window.history.replaceState(null,"",`/review/${e}`))},[r]),F=(0,o.useCallback)(async()=>{try{let e=await fetch(`/api/review/${r}`);if(!e.ok)return void(404===e.status?m(t("review.reviewNotExist")):m(t("review.loadFailed")));let n=await e.json();d(n.review),m(null)}catch{m(t("review.networkError"))}finally{u(!1)}},[r]);(0,o.useEffect)(()=>{F()},[F]),(0,o.useEffect)(()=>{let e=setInterval(()=>{F(),P()},1e4);return()=>clearInterval(e)},[F,P]);let _=(0,o.useCallback)(async(e,n)=>{if(E.authorId)try{(await fetch(`/api/review/${r}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:E.name,authorId:E.authorId,content:e,anchor:n})})).ok&&await F()}catch{(0,N.oR)(t("toast.addCommentFailed"),"error")}},[r,E,F]),W=(0,o.useCallback)(async e=>{try{(await fetch(`/api/review/${r}/comments?commentId=${e}`,{method:"DELETE"})).ok&&await F()}catch{(0,N.oR)(t("toast.deleteCommentFailed"),"error")}},[r,F]),z=(0,o.useCallback)(async(e,n)=>{try{(await fetch(`/api/review/${r}/comments`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({commentId:e,content:n})})).ok&&await F()}catch{(0,N.oR)(t("toast.editCommentFailed"),"error")}},[r,F]),H=(0,o.useCallback)(async(e,n)=>{try{(await fetch(`/api/review/${r}/comments`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({commentId:e,closed:n})})).ok&&await F()}catch{(0,N.oR)(t("toast.operationFailed"),"error")}},[r,F,t]),K=(0,o.useCallback)(async(e,n)=>{if(E.authorId)try{(await fetch(`/api/review/${r}/replies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commentId:e,author:E.name,authorId:E.authorId,content:n})})).ok&&await F()}catch{(0,N.oR)(t("toast.addReplyFailed"),"error")}},[r,E,F]),J=(0,o.useCallback)(async(e,n)=>{try{(await fetch(`/api/review/${r}/replies?commentId=${e}&replyId=${n}`,{method:"DELETE"})).ok&&await F()}catch{(0,N.oR)(t("toast.deleteReplyFailed"),"error")}},[r,F]),V=(0,o.useCallback)(async(e,n,o)=>{try{(await fetch(`/api/review/${r}/replies`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({commentId:e,replyId:n,content:o})})).ok&&await F()}catch{(0,N.oR)(t("toast.editReplyFailed"),"error")}},[r,F]),U=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/review/share-info"),n=await e.json(),o=n.shareBase?`${n.shareBase}/review/${r}`:window.location.href;await navigator.clipboard.writeText(o),(0,N.oR)(t("toast.linkCopied"),"success")}catch{(0,N.oR)(t("toast.copyFailed"),"error")}},[r]),q=(0,o.useCallback)(e=>{p(e),$.current?.(e)},[]),X=(0,o.useCallback)(e=>{p(e),O.current?.(e)},[]),Y=(0,o.useCallback)(e=>{let t;if(!l||0===l.comments.length)return;let r=[...l.comments].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset),n=h?r.findIndex(e=>e.id===h):-1;t="next"===e?n<r.length-1?n+1:0:n>0?n-1:r.length-1;let o=r[t];p(o.id),$.current?.(o.id),O.current?.(o.id)},[l,h]);return(0,n.jsxs)("div",{className:"h-screen flex flex-col bg-background text-foreground overflow-hidden",children:[L&&(0,n.jsx)(y,{currentName:E.name,onConfirm:e=>{E.confirmName(e),A(!1),P()},onSkip:()=>A(!1)}),l&&(0,n.jsx)(k._,{isOpen:D,onClose:()=>M(!1),comments:l.comments,reviewTitle:l.title,userNameMap:T,onCommentClick:e=>{p(e),$.current?.(e),O.current?.(e)}}),l&&(0,n.jsx)("div",{className:"py-2 bg-secondary border-b border-border flex-shrink-0 flex justify-center",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] px-4 flex items-center gap-3",children:[(0,n.jsx)("h1",{className:"text-sm font-semibold truncate",children:l.title}),(0,n.jsx)("span",{className:"text-[11px] text-muted-foreground flex-shrink-0",children:t("review.updatedAt",{date:new Date(l.updatedAt||l.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})})}),(0,n.jsx)("span",{className:"flex-1"}),!v&&(0,n.jsx)("span",{className:`px-2 py-0.5 text-xs rounded-full ${l.active?"bg-green-500/15 text-green-600 dark:text-green-400":"bg-muted text-muted-foreground"}`,children:l.active?t("review.active"):t("review.closed")}),(0,n.jsxs)("button",{onClick:()=>M(!0),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground flex items-center gap-1",title:t("review.viewAllComments"),children:[(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t("review.viewCommentBtn")]}),(0,n.jsx)("button",{onClick:U,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.copyLink")}),(0,n.jsx)("button",{onClick:()=>R("dark"===S?"light":"dark"),className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:"dark"===S?t("settings.switchLight"):t("settings.switchDark"),children:"dark"===S?(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,n.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,n.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,n.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,n.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,n.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,n.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,n.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,n.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,n.jsx)(w,{identity:E})]})}),(0,n.jsx)("div",{className:"flex-1 flex justify-center overflow-hidden",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] flex overflow-hidden",children:[(0,n.jsx)(j,{currentReviewId:r,onSelect:B,readOnly:!v,refreshTrigger:l?.comments.length,onViewComments:e=>{e!==r&&B(e),M(!0)}}),c?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsx)("div",{className:"text-muted-foreground",children:t("common.loading")})}):x||!l?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-xl mb-2",children:x||t("review.reviewNotFound")}),(0,n.jsx)("div",{className:"text-sm text-muted-foreground",children:t("review.checkLink")})]})}):(0,n.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,n.jsx)("div",{className:"flex-1 h-full border-r border-border overflow-hidden",children:(0,n.jsx)(f,{content:l.content,comments:l.comments,activeCommentId:h,isActive:l.active,onAddComment:_,onHighlightClick:X,scrollToHighlightRef:$})}),(0,n.jsx)("div",{className:"w-[360px] h-full overflow-hidden flex-shrink-0",children:(0,n.jsx)(b,{comments:l.comments,activeCommentId:h,currentAuthorId:E.authorId,isActive:l.active,isAdmin:v,userNameMap:T,onCommentClick:q,onNavigateComment:Y,onDeleteComment:W,onEditComment:z,onToggleCommentClosed:H,onAddReply:K,onDeleteReply:J,onEditReply:V,scrollToCommentRef:O})})]})]})})]})}}},e=>{e.O(0,[8653,7330,9268,9114,3700,2171,3530,6108,9062,8441,3794,7358],()=>e(e.s=7482)),_N_E=e.O()}]);