@surething/cockpit 1.0.261 → 1.0.263

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 (544) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +6 -3
  3. package/.next-prod/build-manifest.json +3 -3
  4. package/.next-prod/cockpit-build.json +2 -2
  5. package/.next-prod/prerender-manifest.json +4 -4
  6. package/.next-prod/react-loadable-manifest.json +1 -1
  7. package/.next-prod/routes-manifest.json +18 -0
  8. package/.next-prod/server/app/_global-error/page.js +2 -2
  9. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next-prod/server/app/_global-error.html +1 -1
  11. package/.next-prod/server/app/_global-error.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next-prod/server/app/_not-found/page.js +1 -1
  16. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next-prod/server/app/_not-found.html +2 -2
  18. package/.next-prod/server/app/_not-found.rsc +4 -4
  19. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -4
  20. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +12 -11
  21. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next-prod/server/app/api/agent/test/route.js +1 -1
  24. package/.next-prod/server/app/api/bash/route.js +1 -1
  25. package/.next-prod/server/app/api/chat/codex/route.js +1 -1
  26. package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
  27. package/.next-prod/server/app/api/chat/glm/route.js +1 -1
  28. package/.next-prod/server/app/api/chat/kimi/route.js +1 -1
  29. package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
  30. package/.next-prod/server/app/api/chat/route.js +1 -1
  31. package/.next-prod/server/app/api/chat/stop/route.js +1 -1
  32. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  33. package/.next-prod/server/app/api/commands/route.js +1 -1
  34. package/.next-prod/server/app/api/comments/route.js +1 -1
  35. package/.next-prod/server/app/api/db/columns/route.js +1 -1
  36. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  37. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  38. package/.next-prod/server/app/api/db/export/route.js +1 -1
  39. package/.next-prod/server/app/api/db/query/route.js +1 -1
  40. package/.next-prod/server/app/api/db/schemas/route.js +2 -2
  41. package/.next-prod/server/app/api/deepseek/balance/route.js +1 -1
  42. package/.next-prod/server/app/api/deepseek/credentials/route.js +1 -1
  43. package/.next-prod/server/app/api/deepseek/models/route.js +1 -1
  44. package/.next-prod/server/app/api/dev/spans/route.js +1 -1
  45. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  46. package/.next-prod/server/app/api/file/route.js +1 -1
  47. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  48. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  49. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  50. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  51. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  52. package/.next-prod/server/app/api/files/index/route.js +1 -1
  53. package/.next-prod/server/app/api/files/init/route.js +1 -1
  54. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  55. package/.next-prod/server/app/api/files/read/route.js +1 -1
  56. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  57. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  58. package/.next-prod/server/app/api/files/save/route.js +1 -1
  59. package/.next-prod/server/app/api/files/search/route.js +1 -1
  60. package/.next-prod/server/app/api/files/stat/route.js +1 -1
  61. package/.next-prod/server/app/api/files/text/route.js +1 -1
  62. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  63. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  64. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  65. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  66. package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
  67. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  68. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  69. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  70. package/.next-prod/server/app/api/git/status/route.js +1 -1
  71. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  72. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  73. package/.next-prod/server/app/api/glm/credentials/route.js +1 -1
  74. package/.next-prod/server/app/api/glm/models/route.js +1 -1
  75. package/.next-prod/server/app/api/glm/usage/route.js +1 -1
  76. package/.next-prod/server/app/api/global-state/route.js +1 -1
  77. package/.next-prod/server/app/api/health/route.js +1 -1
  78. package/.next-prod/server/app/api/html-apps/[id]/route.js +1 -1
  79. package/.next-prod/server/app/api/html-apps/route.js +1 -1
  80. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  81. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  82. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  83. package/.next-prod/server/app/api/kimi/credentials/route.js +1 -1
  84. package/.next-prod/server/app/api/kimi/models/route.js +1 -1
  85. package/.next-prod/server/app/api/kimi/usage/route.js +1 -1
  86. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  87. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  88. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  89. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  90. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  91. package/.next-prod/server/app/api/mysql/columns/route.js +2 -2
  92. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  93. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  94. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  95. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  96. package/.next-prod/server/app/api/mysql/schemas/route.js +1 -1
  97. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  98. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  99. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  100. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  101. package/.next-prod/server/app/api/note/route.js +1 -1
  102. package/.next-prod/server/app/api/ollama/config/route.js +1 -1
  103. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  104. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  105. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  106. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  107. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  108. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  109. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  110. package/.next-prod/server/app/api/project-state/route.js +2 -2
  111. package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
  112. package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
  113. package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
  114. package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
  115. package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
  116. package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
  117. package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
  118. package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
  119. package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
  120. package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
  121. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  122. package/.next-prod/server/app/api/projects/route.js +1 -1
  123. package/.next-prod/server/app/api/prompts/config/route.js +1 -1
  124. package/.next-prod/server/app/api/push/public-key/route.js +1 -1
  125. package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
  126. package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
  127. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  128. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  129. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  130. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  131. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  132. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  133. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  134. package/.next-prod/server/app/api/restart/route.js +1 -0
  135. package/.next-prod/server/app/api/restart/route.js.nft.json +1 -0
  136. package/.next-prod/server/app/api/restart/route_client-reference-manifest.js +1 -0
  137. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  138. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  139. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  140. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  141. package/.next-prod/server/app/api/review/order/route.js +1 -1
  142. package/.next-prod/server/app/api/review/route.js +1 -1
  143. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  144. package/.next-prod/server/app/api/review/users/route.js +1 -1
  145. package/.next-prod/server/app/api/scheduled-tasks/route.js +2 -2
  146. package/.next-prod/server/app/api/services/config/route.js +1 -1
  147. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  148. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  149. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  150. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  151. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  152. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  153. package/.next-prod/server/app/api/sessions/route.js +1 -1
  154. package/.next-prod/server/app/api/settings/route.js +1 -1
  155. package/.next-prod/server/app/api/shutdown/route.js +1 -0
  156. package/.next-prod/server/app/api/shutdown/route.js.nft.json +1 -0
  157. package/.next-prod/server/app/api/shutdown/route_client-reference-manifest.js +1 -0
  158. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  159. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  160. package/.next-prod/server/app/api/skills/route.js +1 -1
  161. package/.next-prod/server/app/api/snapshots/diff/route.js +1 -1
  162. package/.next-prod/server/app/api/snapshots/route.js +1 -1
  163. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  164. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  165. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  166. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  167. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  168. package/.next-prod/server/app/api/update/route.js +1 -0
  169. package/.next-prod/server/app/api/update/route.js.nft.json +1 -0
  170. package/.next-prod/server/app/api/update/route_client-reference-manifest.js +1 -0
  171. package/.next-prod/server/app/api/version/route.js +1 -1
  172. package/.next-prod/server/app/apps/[...path]/route.js +1 -1
  173. package/.next-prod/server/app/favicon.ico/route.js +1 -1
  174. package/.next-prod/server/app/m/page.js +1 -1
  175. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
  176. package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
  177. package/.next-prod/server/app/page.js +1 -1
  178. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  179. package/.next-prod/server/app/project/page.js +1 -1
  180. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  181. package/.next-prod/server/app/review/[id]/page.js +1 -1
  182. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  183. package/.next-prod/server/app-paths-manifest.json +6 -3
  184. package/.next-prod/server/chunks/1564.js +1 -1
  185. package/.next-prod/server/chunks/5750.js +42 -40
  186. package/.next-prod/server/chunks/6495.js +1 -1
  187. package/.next-prod/server/chunks/6548.js +1 -1
  188. package/.next-prod/server/chunks/7184.js +1 -1
  189. package/.next-prod/server/chunks/841.js +1 -1
  190. package/.next-prod/server/chunks/8764.js +2 -2
  191. package/.next-prod/server/functions-config-manifest.json +3 -0
  192. package/.next-prod/server/middleware-build-manifest.js +1 -1
  193. package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
  194. package/.next-prod/server/pages/404.html +2 -2
  195. package/.next-prod/server/pages/500.html +1 -1
  196. package/.next-prod/server/server-reference-manifest.json +1 -1
  197. package/.next-prod/static/Jy5sAJFfhng774VeXYdQS/_buildManifest.js +1 -0
  198. package/.next-prod/static/chunks/1372-c2e2e52980e95aec.js +15 -0
  199. package/.next-prod/static/chunks/{1959.a8039e13d14ada11.js → 1959.1d5dbd36400b94d2.js} +4 -4
  200. package/.next-prod/static/chunks/2032-8326efdf5830d58c.js +1 -0
  201. package/.next-prod/static/chunks/6722-1252a1399ff10e47.js +35 -0
  202. package/.next-prod/static/chunks/6784-20cc834d161af395.js +381 -0
  203. package/.next-prod/static/chunks/app/_global-error/page-7c7e4c414aa6453c.js +1 -0
  204. package/.next-prod/static/chunks/app/api/agent/test/route-7c7e4c414aa6453c.js +1 -0
  205. package/.next-prod/static/chunks/app/api/bash/route-7c7e4c414aa6453c.js +1 -0
  206. package/.next-prod/static/chunks/app/api/chat/codex/route-7c7e4c414aa6453c.js +1 -0
  207. package/.next-prod/static/chunks/app/api/chat/deepseek/route-7c7e4c414aa6453c.js +1 -0
  208. package/.next-prod/static/chunks/app/api/chat/glm/route-7c7e4c414aa6453c.js +1 -0
  209. package/.next-prod/static/chunks/app/api/chat/kimi/route-7c7e4c414aa6453c.js +1 -0
  210. package/.next-prod/static/chunks/app/api/chat/ollama/route-7c7e4c414aa6453c.js +1 -0
  211. package/.next-prod/static/chunks/app/api/chat/route-7c7e4c414aa6453c.js +1 -0
  212. package/.next-prod/static/chunks/app/api/chat/stop/route-7c7e4c414aa6453c.js +1 -0
  213. package/.next-prod/static/chunks/app/api/claude-stats/route-7c7e4c414aa6453c.js +1 -0
  214. package/.next-prod/static/chunks/app/api/commands/route-7c7e4c414aa6453c.js +1 -0
  215. package/.next-prod/static/chunks/app/api/comments/route-7c7e4c414aa6453c.js +1 -0
  216. package/.next-prod/static/chunks/app/api/db/columns/route-7c7e4c414aa6453c.js +1 -0
  217. package/.next-prod/static/chunks/app/api/db/connect/route-7c7e4c414aa6453c.js +1 -0
  218. package/.next-prod/static/chunks/app/api/db/disconnect/route-7c7e4c414aa6453c.js +1 -0
  219. package/.next-prod/static/chunks/app/api/db/export/route-7c7e4c414aa6453c.js +1 -0
  220. package/.next-prod/static/chunks/app/api/db/query/route-7c7e4c414aa6453c.js +1 -0
  221. package/.next-prod/static/chunks/app/api/db/schemas/route-7c7e4c414aa6453c.js +1 -0
  222. package/.next-prod/static/chunks/app/api/deepseek/balance/route-7c7e4c414aa6453c.js +1 -0
  223. package/.next-prod/static/chunks/app/api/deepseek/credentials/route-7c7e4c414aa6453c.js +1 -0
  224. package/.next-prod/static/chunks/app/api/deepseek/models/route-7c7e4c414aa6453c.js +1 -0
  225. package/.next-prod/static/chunks/app/api/dev/spans/route-7c7e4c414aa6453c.js +1 -0
  226. package/.next-prod/static/chunks/app/api/extension/version/route-7c7e4c414aa6453c.js +1 -0
  227. package/.next-prod/static/chunks/app/api/file/route-7c7e4c414aa6453c.js +1 -0
  228. package/.next-prod/static/chunks/app/api/files/blame/route-7c7e4c414aa6453c.js +1 -0
  229. package/.next-prod/static/chunks/app/api/files/clipboard/route-7c7e4c414aa6453c.js +1 -0
  230. package/.next-prod/static/chunks/app/api/files/copy/route-7c7e4c414aa6453c.js +1 -0
  231. package/.next-prod/static/chunks/app/api/files/delete/route-7c7e4c414aa6453c.js +1 -0
  232. package/.next-prod/static/chunks/app/api/files/expanded/route-7c7e4c414aa6453c.js +1 -0
  233. package/.next-prod/static/chunks/app/api/files/index/route-7c7e4c414aa6453c.js +1 -0
  234. package/.next-prod/static/chunks/app/api/files/init/route-7c7e4c414aa6453c.js +1 -0
  235. package/.next-prod/static/chunks/app/api/files/paste/route-7c7e4c414aa6453c.js +1 -0
  236. package/.next-prod/static/chunks/app/api/files/read/route-7c7e4c414aa6453c.js +1 -0
  237. package/.next-prod/static/chunks/app/api/files/readdir/route-7c7e4c414aa6453c.js +1 -0
  238. package/.next-prod/static/chunks/app/api/files/recent/route-7c7e4c414aa6453c.js +1 -0
  239. package/.next-prod/static/chunks/app/api/files/save/route-7c7e4c414aa6453c.js +1 -0
  240. package/.next-prod/static/chunks/app/api/files/search/route-7c7e4c414aa6453c.js +1 -0
  241. package/.next-prod/static/chunks/app/api/files/stat/route-7c7e4c414aa6453c.js +1 -0
  242. package/.next-prod/static/chunks/app/api/files/text/route-7c7e4c414aa6453c.js +1 -0
  243. package/.next-prod/static/chunks/app/api/git/branch-diff/route-7c7e4c414aa6453c.js +1 -0
  244. package/.next-prod/static/chunks/app/api/git/branches/route-7c7e4c414aa6453c.js +1 -0
  245. package/.next-prod/static/chunks/app/api/git/commit-diff/route-7c7e4c414aa6453c.js +1 -0
  246. package/.next-prod/static/chunks/app/api/git/commits/route-7c7e4c414aa6453c.js +1 -0
  247. package/.next-prod/static/chunks/app/api/git/current-branch/route-7c7e4c414aa6453c.js +1 -0
  248. package/.next-prod/static/chunks/app/api/git/diff/route-7c7e4c414aa6453c.js +1 -0
  249. package/.next-prod/static/chunks/app/api/git/discard/route-7c7e4c414aa6453c.js +1 -0
  250. package/.next-prod/static/chunks/app/api/git/stage/route-7c7e4c414aa6453c.js +1 -0
  251. package/.next-prod/static/chunks/app/api/git/status/route-7c7e4c414aa6453c.js +1 -0
  252. package/.next-prod/static/chunks/app/api/git/unstage/route-7c7e4c414aa6453c.js +1 -0
  253. package/.next-prod/static/chunks/app/api/git/worktree/route-7c7e4c414aa6453c.js +1 -0
  254. package/.next-prod/static/chunks/app/api/glm/credentials/route-7c7e4c414aa6453c.js +1 -0
  255. package/.next-prod/static/chunks/app/api/glm/models/route-7c7e4c414aa6453c.js +1 -0
  256. package/.next-prod/static/chunks/app/api/glm/usage/route-7c7e4c414aa6453c.js +1 -0
  257. package/.next-prod/static/chunks/app/api/global-state/route-7c7e4c414aa6453c.js +1 -0
  258. package/.next-prod/static/chunks/app/api/health/route-7c7e4c414aa6453c.js +1 -0
  259. package/.next-prod/static/chunks/app/api/html-apps/[id]/route-7c7e4c414aa6453c.js +1 -0
  260. package/.next-prod/static/chunks/app/api/html-apps/route-7c7e4c414aa6453c.js +1 -0
  261. package/.next-prod/static/chunks/app/api/jupyter/load/route-7c7e4c414aa6453c.js +1 -0
  262. package/.next-prod/static/chunks/app/api/jupyter/save/route-7c7e4c414aa6453c.js +1 -0
  263. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-7c7e4c414aa6453c.js +1 -0
  264. package/.next-prod/static/chunks/app/api/kimi/credentials/route-7c7e4c414aa6453c.js +1 -0
  265. package/.next-prod/static/chunks/app/api/kimi/models/route-7c7e4c414aa6453c.js +1 -0
  266. package/.next-prod/static/chunks/app/api/kimi/usage/route-7c7e4c414aa6453c.js +1 -0
  267. package/.next-prod/static/chunks/app/api/lsp/definition/route-7c7e4c414aa6453c.js +1 -0
  268. package/.next-prod/static/chunks/app/api/lsp/hover/route-7c7e4c414aa6453c.js +1 -0
  269. package/.next-prod/static/chunks/app/api/lsp/references/route-7c7e4c414aa6453c.js +1 -0
  270. package/.next-prod/static/chunks/app/api/lsp/status/route-7c7e4c414aa6453c.js +1 -0
  271. package/.next-prod/static/chunks/app/api/lsp/warmup/route-7c7e4c414aa6453c.js +1 -0
  272. package/.next-prod/static/chunks/app/api/mysql/columns/route-7c7e4c414aa6453c.js +1 -0
  273. package/.next-prod/static/chunks/app/api/mysql/connect/route-7c7e4c414aa6453c.js +1 -0
  274. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-7c7e4c414aa6453c.js +1 -0
  275. package/.next-prod/static/chunks/app/api/mysql/export/route-7c7e4c414aa6453c.js +1 -0
  276. package/.next-prod/static/chunks/app/api/mysql/query/route-7c7e4c414aa6453c.js +1 -0
  277. package/.next-prod/static/chunks/app/api/mysql/schemas/route-7c7e4c414aa6453c.js +1 -0
  278. package/.next-prod/static/chunks/app/api/neo4j/connect/route-7c7e4c414aa6453c.js +1 -0
  279. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-7c7e4c414aa6453c.js +1 -0
  280. package/.next-prod/static/chunks/app/api/neo4j/query/route-7c7e4c414aa6453c.js +1 -0
  281. package/.next-prod/static/chunks/app/api/neo4j/schema/route-7c7e4c414aa6453c.js +1 -0
  282. package/.next-prod/static/chunks/app/api/note/route-7c7e4c414aa6453c.js +1 -0
  283. package/.next-prod/static/chunks/app/api/ollama/config/route-7c7e4c414aa6453c.js +1 -0
  284. package/.next-prod/static/chunks/app/api/ollama/models/route-7c7e4c414aa6453c.js +1 -0
  285. package/.next-prod/static/chunks/app/api/ollama/start/route-7c7e4c414aa6453c.js +1 -0
  286. package/.next-prod/static/chunks/app/api/open-cursor/route-7c7e4c414aa6453c.js +1 -0
  287. package/.next-prod/static/chunks/app/api/open-vscode/route-7c7e4c414aa6453c.js +1 -0
  288. package/.next-prod/static/chunks/app/api/pick-folder/route-7c7e4c414aa6453c.js +1 -0
  289. package/.next-prod/static/chunks/app/api/pinned-sessions/route-7c7e4c414aa6453c.js +1 -0
  290. package/.next-prod/static/chunks/app/api/project-settings/route-7c7e4c414aa6453c.js +1 -0
  291. package/.next-prod/static/chunks/app/api/project-state/route-7c7e4c414aa6453c.js +1 -0
  292. package/.next-prod/static/chunks/app/api/projectGraph/affected/route-7c7e4c414aa6453c.js +1 -0
  293. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-7c7e4c414aa6453c.js +1 -0
  294. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-7c7e4c414aa6453c.js +1 -0
  295. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-7c7e4c414aa6453c.js +1 -0
  296. package/.next-prod/static/chunks/app/api/projectGraph/context/route-7c7e4c414aa6453c.js +1 -0
  297. package/.next-prod/static/chunks/app/api/projectGraph/file/route-7c7e4c414aa6453c.js +1 -0
  298. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-7c7e4c414aa6453c.js +1 -0
  299. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-7c7e4c414aa6453c.js +1 -0
  300. package/.next-prod/static/chunks/app/api/projectGraph/related/route-7c7e4c414aa6453c.js +1 -0
  301. package/.next-prod/static/chunks/app/api/projectGraph/risk/route-7c7e4c414aa6453c.js +1 -0
  302. package/.next-prod/static/chunks/app/api/projectGraph/search/route-7c7e4c414aa6453c.js +1 -0
  303. package/.next-prod/static/chunks/app/api/projects/route-7c7e4c414aa6453c.js +1 -0
  304. package/.next-prod/static/chunks/app/api/prompts/config/route-7c7e4c414aa6453c.js +1 -0
  305. package/.next-prod/static/chunks/app/api/push/public-key/route-7c7e4c414aa6453c.js +1 -0
  306. package/.next-prod/static/chunks/app/api/push/subscribe/route-7c7e4c414aa6453c.js +1 -0
  307. package/.next-prod/static/chunks/app/api/push/unsubscribe/route-7c7e4c414aa6453c.js +1 -0
  308. package/.next-prod/static/chunks/app/api/redis/command/route-7c7e4c414aa6453c.js +1 -0
  309. package/.next-prod/static/chunks/app/api/redis/connect/route-7c7e4c414aa6453c.js +1 -0
  310. package/.next-prod/static/chunks/app/api/redis/delete/route-7c7e4c414aa6453c.js +1 -0
  311. package/.next-prod/static/chunks/app/api/redis/disconnect/route-7c7e4c414aa6453c.js +1 -0
  312. package/.next-prod/static/chunks/app/api/redis/get/route-7c7e4c414aa6453c.js +1 -0
  313. package/.next-prod/static/chunks/app/api/redis/keys/route-7c7e4c414aa6453c.js +1 -0
  314. package/.next-prod/static/chunks/app/api/redis/set/route-7c7e4c414aa6453c.js +1 -0
  315. package/.next-prod/static/chunks/app/api/restart/route-7c7e4c414aa6453c.js +1 -0
  316. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-7c7e4c414aa6453c.js +1 -0
  317. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-7c7e4c414aa6453c.js +1 -0
  318. package/.next-prod/static/chunks/app/api/review/[id]/route-7c7e4c414aa6453c.js +1 -0
  319. package/.next-prod/static/chunks/app/api/review/identify/route-7c7e4c414aa6453c.js +1 -0
  320. package/.next-prod/static/chunks/app/api/review/order/route-7c7e4c414aa6453c.js +1 -0
  321. package/.next-prod/static/chunks/app/api/review/route-7c7e4c414aa6453c.js +1 -0
  322. package/.next-prod/static/chunks/app/api/review/share-info/route-7c7e4c414aa6453c.js +1 -0
  323. package/.next-prod/static/chunks/app/api/review/users/route-7c7e4c414aa6453c.js +1 -0
  324. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-7c7e4c414aa6453c.js +1 -0
  325. package/.next-prod/static/chunks/app/api/services/config/route-7c7e4c414aa6453c.js +1 -0
  326. package/.next-prod/static/chunks/app/api/services/scripts/route-7c7e4c414aa6453c.js +1 -0
  327. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-7c7e4c414aa6453c.js +1 -0
  328. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-7c7e4c414aa6453c.js +1 -0
  329. package/.next-prod/static/chunks/app/api/session-by-path/route-7c7e4c414aa6453c.js +1 -0
  330. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-7c7e4c414aa6453c.js +1 -0
  331. package/.next-prod/static/chunks/app/api/sessions/projects/route-7c7e4c414aa6453c.js +1 -0
  332. package/.next-prod/static/chunks/app/api/sessions/route-7c7e4c414aa6453c.js +1 -0
  333. package/.next-prod/static/chunks/app/api/settings/route-7c7e4c414aa6453c.js +1 -0
  334. package/.next-prod/static/chunks/app/api/shutdown/route-7c7e4c414aa6453c.js +1 -0
  335. package/.next-prod/static/chunks/app/api/skills/[id]/route-7c7e4c414aa6453c.js +1 -0
  336. package/.next-prod/static/chunks/app/api/skills/content/route-7c7e4c414aa6453c.js +1 -0
  337. package/.next-prod/static/chunks/app/api/skills/route-7c7e4c414aa6453c.js +1 -0
  338. package/.next-prod/static/chunks/app/api/snapshots/diff/route-7c7e4c414aa6453c.js +1 -0
  339. package/.next-prod/static/chunks/app/api/snapshots/route-7c7e4c414aa6453c.js +1 -0
  340. package/.next-prod/static/chunks/app/api/terminal/aliases/route-7c7e4c414aa6453c.js +1 -0
  341. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-7c7e4c414aa6453c.js +1 -0
  342. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-7c7e4c414aa6453c.js +1 -0
  343. package/.next-prod/static/chunks/app/api/terminal/env/route-7c7e4c414aa6453c.js +1 -0
  344. package/.next-prod/static/chunks/app/api/terminal/history/route-7c7e4c414aa6453c.js +1 -0
  345. package/.next-prod/static/chunks/app/api/update/route-7c7e4c414aa6453c.js +1 -0
  346. package/.next-prod/static/chunks/app/api/version/route-7c7e4c414aa6453c.js +1 -0
  347. package/.next-prod/static/chunks/app/apps/[...path]/route-7c7e4c414aa6453c.js +1 -0
  348. package/.next-prod/static/chunks/app/{layout-ab52fc1a83af968b.js → layout-b11ccf3395201b18.js} +1 -1
  349. package/.next-prod/static/chunks/app/m/page-d7c162f2db6b377c.js +1 -0
  350. package/.next-prod/static/chunks/app/manifest.webmanifest/route-7c7e4c414aa6453c.js +1 -0
  351. package/.next-prod/static/chunks/app/{page-5de8b6584e328a6f.js → page-e03b50ea13cd6198.js} +1 -1
  352. package/.next-prod/static/chunks/app/project/{page-5de8b6584e328a6f.js → page-e03b50ea13cd6198.js} +1 -1
  353. package/.next-prod/static/chunks/app/review/[id]/page-556db82704d074ab.js +1 -0
  354. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-7c7e4c414aa6453c.js +1 -0
  355. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-7c7e4c414aa6453c.js +1 -0
  356. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-7c7e4c414aa6453c.js +1 -0
  357. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-7c7e4c414aa6453c.js +1 -0
  358. package/.next-prod/static/chunks/{webpack-ce60587570394496.js → webpack-e959a5364a05b2ac.js} +1 -1
  359. package/.next-prod/static/css/237348b31ba05918.css +1 -0
  360. package/.next-prod/trace +14 -14
  361. package/.next-prod/trace-build +1 -1
  362. package/.next-prod/types/app/api/restart/route.ts +353 -0
  363. package/.next-prod/types/app/api/shutdown/route.ts +353 -0
  364. package/.next-prod/types/app/api/update/route.ts +353 -0
  365. package/.next-prod/types/routes.d.ts +4 -1
  366. package/.next-prod/types/validator.ts +27 -0
  367. package/README.md +75 -0
  368. package/README.zh.md +64 -0
  369. package/bin/cock-service.mjs +498 -0
  370. package/bin/cock.mjs +35 -27
  371. package/bin/cockpitHome.mjs +33 -0
  372. package/bin/rotateLog.mjs +52 -0
  373. package/bin/updater.mjs +231 -0
  374. package/dist/{chunk-B5LXMESP.mjs → chunk-FBAFMLUC.mjs} +1 -1
  375. package/dist/{chunk-CLPJYIFC.mjs → chunk-H6AI4XJC.mjs} +4 -3
  376. package/dist/{chunk-TU3GL2HK.mjs → chunk-ZE2JXL6E.mjs} +18 -7
  377. package/dist/httpApi.mjs +2 -2
  378. package/dist/scheduledTasks.mjs +24 -4
  379. package/dist/{server-2UJDVZ32.mjs → server-HRP33LCV.mjs} +2 -2
  380. package/dist/wsServer.mjs +144 -112
  381. package/package.json +1 -1
  382. package/public/html-lib/json-viewer.js +9 -9
  383. package/public/html-lib/markdown.css +0 -7
  384. package/public/html-lib/markdown.js +1 -1
  385. package/public/html-lib/pdf-viewer.css +0 -11
  386. package/public/html-lib/pdf-viewer.js +1 -1
  387. package/public/html-lib/theme.css +95 -11
  388. package/server.mjs +127 -11
  389. package/.next-prod/static/chunks/1157-164bcf046a0a9b15.js +0 -32
  390. package/.next-prod/static/chunks/1372-d16d68b1b03a345a.js +0 -15
  391. package/.next-prod/static/chunks/2032-f224a93f7a22bc21.js +0 -1
  392. package/.next-prod/static/chunks/6784-09dffdb0e8ca7fb3.js +0 -381
  393. package/.next-prod/static/chunks/app/_global-error/page-3c1c06e2de280418.js +0 -1
  394. package/.next-prod/static/chunks/app/api/agent/test/route-3c1c06e2de280418.js +0 -1
  395. package/.next-prod/static/chunks/app/api/bash/route-3c1c06e2de280418.js +0 -1
  396. package/.next-prod/static/chunks/app/api/chat/codex/route-3c1c06e2de280418.js +0 -1
  397. package/.next-prod/static/chunks/app/api/chat/deepseek/route-3c1c06e2de280418.js +0 -1
  398. package/.next-prod/static/chunks/app/api/chat/glm/route-3c1c06e2de280418.js +0 -1
  399. package/.next-prod/static/chunks/app/api/chat/kimi/route-3c1c06e2de280418.js +0 -1
  400. package/.next-prod/static/chunks/app/api/chat/ollama/route-3c1c06e2de280418.js +0 -1
  401. package/.next-prod/static/chunks/app/api/chat/route-3c1c06e2de280418.js +0 -1
  402. package/.next-prod/static/chunks/app/api/chat/stop/route-3c1c06e2de280418.js +0 -1
  403. package/.next-prod/static/chunks/app/api/claude-stats/route-3c1c06e2de280418.js +0 -1
  404. package/.next-prod/static/chunks/app/api/commands/route-3c1c06e2de280418.js +0 -1
  405. package/.next-prod/static/chunks/app/api/comments/route-3c1c06e2de280418.js +0 -1
  406. package/.next-prod/static/chunks/app/api/db/columns/route-3c1c06e2de280418.js +0 -1
  407. package/.next-prod/static/chunks/app/api/db/connect/route-3c1c06e2de280418.js +0 -1
  408. package/.next-prod/static/chunks/app/api/db/disconnect/route-3c1c06e2de280418.js +0 -1
  409. package/.next-prod/static/chunks/app/api/db/export/route-3c1c06e2de280418.js +0 -1
  410. package/.next-prod/static/chunks/app/api/db/query/route-3c1c06e2de280418.js +0 -1
  411. package/.next-prod/static/chunks/app/api/db/schemas/route-3c1c06e2de280418.js +0 -1
  412. package/.next-prod/static/chunks/app/api/deepseek/balance/route-3c1c06e2de280418.js +0 -1
  413. package/.next-prod/static/chunks/app/api/deepseek/credentials/route-3c1c06e2de280418.js +0 -1
  414. package/.next-prod/static/chunks/app/api/deepseek/models/route-3c1c06e2de280418.js +0 -1
  415. package/.next-prod/static/chunks/app/api/dev/spans/route-3c1c06e2de280418.js +0 -1
  416. package/.next-prod/static/chunks/app/api/extension/version/route-3c1c06e2de280418.js +0 -1
  417. package/.next-prod/static/chunks/app/api/file/route-3c1c06e2de280418.js +0 -1
  418. package/.next-prod/static/chunks/app/api/files/blame/route-3c1c06e2de280418.js +0 -1
  419. package/.next-prod/static/chunks/app/api/files/clipboard/route-3c1c06e2de280418.js +0 -1
  420. package/.next-prod/static/chunks/app/api/files/copy/route-3c1c06e2de280418.js +0 -1
  421. package/.next-prod/static/chunks/app/api/files/delete/route-3c1c06e2de280418.js +0 -1
  422. package/.next-prod/static/chunks/app/api/files/expanded/route-3c1c06e2de280418.js +0 -1
  423. package/.next-prod/static/chunks/app/api/files/index/route-3c1c06e2de280418.js +0 -1
  424. package/.next-prod/static/chunks/app/api/files/init/route-3c1c06e2de280418.js +0 -1
  425. package/.next-prod/static/chunks/app/api/files/paste/route-3c1c06e2de280418.js +0 -1
  426. package/.next-prod/static/chunks/app/api/files/read/route-3c1c06e2de280418.js +0 -1
  427. package/.next-prod/static/chunks/app/api/files/readdir/route-3c1c06e2de280418.js +0 -1
  428. package/.next-prod/static/chunks/app/api/files/recent/route-3c1c06e2de280418.js +0 -1
  429. package/.next-prod/static/chunks/app/api/files/save/route-3c1c06e2de280418.js +0 -1
  430. package/.next-prod/static/chunks/app/api/files/search/route-3c1c06e2de280418.js +0 -1
  431. package/.next-prod/static/chunks/app/api/files/stat/route-3c1c06e2de280418.js +0 -1
  432. package/.next-prod/static/chunks/app/api/files/text/route-3c1c06e2de280418.js +0 -1
  433. package/.next-prod/static/chunks/app/api/git/branch-diff/route-3c1c06e2de280418.js +0 -1
  434. package/.next-prod/static/chunks/app/api/git/branches/route-3c1c06e2de280418.js +0 -1
  435. package/.next-prod/static/chunks/app/api/git/commit-diff/route-3c1c06e2de280418.js +0 -1
  436. package/.next-prod/static/chunks/app/api/git/commits/route-3c1c06e2de280418.js +0 -1
  437. package/.next-prod/static/chunks/app/api/git/current-branch/route-3c1c06e2de280418.js +0 -1
  438. package/.next-prod/static/chunks/app/api/git/diff/route-3c1c06e2de280418.js +0 -1
  439. package/.next-prod/static/chunks/app/api/git/discard/route-3c1c06e2de280418.js +0 -1
  440. package/.next-prod/static/chunks/app/api/git/stage/route-3c1c06e2de280418.js +0 -1
  441. package/.next-prod/static/chunks/app/api/git/status/route-3c1c06e2de280418.js +0 -1
  442. package/.next-prod/static/chunks/app/api/git/unstage/route-3c1c06e2de280418.js +0 -1
  443. package/.next-prod/static/chunks/app/api/git/worktree/route-3c1c06e2de280418.js +0 -1
  444. package/.next-prod/static/chunks/app/api/glm/credentials/route-3c1c06e2de280418.js +0 -1
  445. package/.next-prod/static/chunks/app/api/glm/models/route-3c1c06e2de280418.js +0 -1
  446. package/.next-prod/static/chunks/app/api/glm/usage/route-3c1c06e2de280418.js +0 -1
  447. package/.next-prod/static/chunks/app/api/global-state/route-3c1c06e2de280418.js +0 -1
  448. package/.next-prod/static/chunks/app/api/health/route-3c1c06e2de280418.js +0 -1
  449. package/.next-prod/static/chunks/app/api/html-apps/[id]/route-3c1c06e2de280418.js +0 -1
  450. package/.next-prod/static/chunks/app/api/html-apps/route-3c1c06e2de280418.js +0 -1
  451. package/.next-prod/static/chunks/app/api/jupyter/load/route-3c1c06e2de280418.js +0 -1
  452. package/.next-prod/static/chunks/app/api/jupyter/save/route-3c1c06e2de280418.js +0 -1
  453. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-3c1c06e2de280418.js +0 -1
  454. package/.next-prod/static/chunks/app/api/kimi/credentials/route-3c1c06e2de280418.js +0 -1
  455. package/.next-prod/static/chunks/app/api/kimi/models/route-3c1c06e2de280418.js +0 -1
  456. package/.next-prod/static/chunks/app/api/kimi/usage/route-3c1c06e2de280418.js +0 -1
  457. package/.next-prod/static/chunks/app/api/lsp/definition/route-3c1c06e2de280418.js +0 -1
  458. package/.next-prod/static/chunks/app/api/lsp/hover/route-3c1c06e2de280418.js +0 -1
  459. package/.next-prod/static/chunks/app/api/lsp/references/route-3c1c06e2de280418.js +0 -1
  460. package/.next-prod/static/chunks/app/api/lsp/status/route-3c1c06e2de280418.js +0 -1
  461. package/.next-prod/static/chunks/app/api/lsp/warmup/route-3c1c06e2de280418.js +0 -1
  462. package/.next-prod/static/chunks/app/api/mysql/columns/route-3c1c06e2de280418.js +0 -1
  463. package/.next-prod/static/chunks/app/api/mysql/connect/route-3c1c06e2de280418.js +0 -1
  464. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-3c1c06e2de280418.js +0 -1
  465. package/.next-prod/static/chunks/app/api/mysql/export/route-3c1c06e2de280418.js +0 -1
  466. package/.next-prod/static/chunks/app/api/mysql/query/route-3c1c06e2de280418.js +0 -1
  467. package/.next-prod/static/chunks/app/api/mysql/schemas/route-3c1c06e2de280418.js +0 -1
  468. package/.next-prod/static/chunks/app/api/neo4j/connect/route-3c1c06e2de280418.js +0 -1
  469. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-3c1c06e2de280418.js +0 -1
  470. package/.next-prod/static/chunks/app/api/neo4j/query/route-3c1c06e2de280418.js +0 -1
  471. package/.next-prod/static/chunks/app/api/neo4j/schema/route-3c1c06e2de280418.js +0 -1
  472. package/.next-prod/static/chunks/app/api/note/route-3c1c06e2de280418.js +0 -1
  473. package/.next-prod/static/chunks/app/api/ollama/config/route-3c1c06e2de280418.js +0 -1
  474. package/.next-prod/static/chunks/app/api/ollama/models/route-3c1c06e2de280418.js +0 -1
  475. package/.next-prod/static/chunks/app/api/ollama/start/route-3c1c06e2de280418.js +0 -1
  476. package/.next-prod/static/chunks/app/api/open-cursor/route-3c1c06e2de280418.js +0 -1
  477. package/.next-prod/static/chunks/app/api/open-vscode/route-3c1c06e2de280418.js +0 -1
  478. package/.next-prod/static/chunks/app/api/pick-folder/route-3c1c06e2de280418.js +0 -1
  479. package/.next-prod/static/chunks/app/api/pinned-sessions/route-3c1c06e2de280418.js +0 -1
  480. package/.next-prod/static/chunks/app/api/project-settings/route-3c1c06e2de280418.js +0 -1
  481. package/.next-prod/static/chunks/app/api/project-state/route-3c1c06e2de280418.js +0 -1
  482. package/.next-prod/static/chunks/app/api/projectGraph/affected/route-3c1c06e2de280418.js +0 -1
  483. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-3c1c06e2de280418.js +0 -1
  484. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-3c1c06e2de280418.js +0 -1
  485. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-3c1c06e2de280418.js +0 -1
  486. package/.next-prod/static/chunks/app/api/projectGraph/context/route-3c1c06e2de280418.js +0 -1
  487. package/.next-prod/static/chunks/app/api/projectGraph/file/route-3c1c06e2de280418.js +0 -1
  488. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-3c1c06e2de280418.js +0 -1
  489. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-3c1c06e2de280418.js +0 -1
  490. package/.next-prod/static/chunks/app/api/projectGraph/related/route-3c1c06e2de280418.js +0 -1
  491. package/.next-prod/static/chunks/app/api/projectGraph/risk/route-3c1c06e2de280418.js +0 -1
  492. package/.next-prod/static/chunks/app/api/projectGraph/search/route-3c1c06e2de280418.js +0 -1
  493. package/.next-prod/static/chunks/app/api/projects/route-3c1c06e2de280418.js +0 -1
  494. package/.next-prod/static/chunks/app/api/prompts/config/route-3c1c06e2de280418.js +0 -1
  495. package/.next-prod/static/chunks/app/api/push/public-key/route-3c1c06e2de280418.js +0 -1
  496. package/.next-prod/static/chunks/app/api/push/subscribe/route-3c1c06e2de280418.js +0 -1
  497. package/.next-prod/static/chunks/app/api/push/unsubscribe/route-3c1c06e2de280418.js +0 -1
  498. package/.next-prod/static/chunks/app/api/redis/command/route-3c1c06e2de280418.js +0 -1
  499. package/.next-prod/static/chunks/app/api/redis/connect/route-3c1c06e2de280418.js +0 -1
  500. package/.next-prod/static/chunks/app/api/redis/delete/route-3c1c06e2de280418.js +0 -1
  501. package/.next-prod/static/chunks/app/api/redis/disconnect/route-3c1c06e2de280418.js +0 -1
  502. package/.next-prod/static/chunks/app/api/redis/get/route-3c1c06e2de280418.js +0 -1
  503. package/.next-prod/static/chunks/app/api/redis/keys/route-3c1c06e2de280418.js +0 -1
  504. package/.next-prod/static/chunks/app/api/redis/set/route-3c1c06e2de280418.js +0 -1
  505. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-3c1c06e2de280418.js +0 -1
  506. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-3c1c06e2de280418.js +0 -1
  507. package/.next-prod/static/chunks/app/api/review/[id]/route-3c1c06e2de280418.js +0 -1
  508. package/.next-prod/static/chunks/app/api/review/identify/route-3c1c06e2de280418.js +0 -1
  509. package/.next-prod/static/chunks/app/api/review/order/route-3c1c06e2de280418.js +0 -1
  510. package/.next-prod/static/chunks/app/api/review/route-3c1c06e2de280418.js +0 -1
  511. package/.next-prod/static/chunks/app/api/review/share-info/route-3c1c06e2de280418.js +0 -1
  512. package/.next-prod/static/chunks/app/api/review/users/route-3c1c06e2de280418.js +0 -1
  513. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-3c1c06e2de280418.js +0 -1
  514. package/.next-prod/static/chunks/app/api/services/config/route-3c1c06e2de280418.js +0 -1
  515. package/.next-prod/static/chunks/app/api/services/scripts/route-3c1c06e2de280418.js +0 -1
  516. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-3c1c06e2de280418.js +0 -1
  517. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-3c1c06e2de280418.js +0 -1
  518. package/.next-prod/static/chunks/app/api/session-by-path/route-3c1c06e2de280418.js +0 -1
  519. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-3c1c06e2de280418.js +0 -1
  520. package/.next-prod/static/chunks/app/api/sessions/projects/route-3c1c06e2de280418.js +0 -1
  521. package/.next-prod/static/chunks/app/api/sessions/route-3c1c06e2de280418.js +0 -1
  522. package/.next-prod/static/chunks/app/api/settings/route-3c1c06e2de280418.js +0 -1
  523. package/.next-prod/static/chunks/app/api/skills/[id]/route-3c1c06e2de280418.js +0 -1
  524. package/.next-prod/static/chunks/app/api/skills/content/route-3c1c06e2de280418.js +0 -1
  525. package/.next-prod/static/chunks/app/api/skills/route-3c1c06e2de280418.js +0 -1
  526. package/.next-prod/static/chunks/app/api/snapshots/diff/route-3c1c06e2de280418.js +0 -1
  527. package/.next-prod/static/chunks/app/api/snapshots/route-3c1c06e2de280418.js +0 -1
  528. package/.next-prod/static/chunks/app/api/terminal/aliases/route-3c1c06e2de280418.js +0 -1
  529. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-3c1c06e2de280418.js +0 -1
  530. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-3c1c06e2de280418.js +0 -1
  531. package/.next-prod/static/chunks/app/api/terminal/env/route-3c1c06e2de280418.js +0 -1
  532. package/.next-prod/static/chunks/app/api/terminal/history/route-3c1c06e2de280418.js +0 -1
  533. package/.next-prod/static/chunks/app/api/version/route-3c1c06e2de280418.js +0 -1
  534. package/.next-prod/static/chunks/app/apps/[...path]/route-3c1c06e2de280418.js +0 -1
  535. package/.next-prod/static/chunks/app/m/page-7dcf56a65528216f.js +0 -1
  536. package/.next-prod/static/chunks/app/manifest.webmanifest/route-3c1c06e2de280418.js +0 -1
  537. package/.next-prod/static/chunks/app/review/[id]/page-c0136423507b7547.js +0 -1
  538. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-3c1c06e2de280418.js +0 -1
  539. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-3c1c06e2de280418.js +0 -1
  540. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-3c1c06e2de280418.js +0 -1
  541. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-3c1c06e2de280418.js +0 -1
  542. package/.next-prod/static/css/83c134c954630942.css +0 -1
  543. package/.next-prod/static/pgteRwI6FQcp683smeSNO/_buildManifest.js +0 -1
  544. /package/.next-prod/static/{pgteRwI6FQcp683smeSNO → Jy5sAJFfhng774VeXYdQS}/_ssgManifest.js +0 -0
package/server.mjs CHANGED
@@ -2,10 +2,11 @@ import { createServer } from 'http';
2
2
  import { createGzip, constants as zlibConstants } from 'zlib';
3
3
  import { exec, execSync } from 'child_process';
4
4
  import { networkInterfaces, homedir } from 'os';
5
- import { writeFileSync, mkdirSync, readFileSync, realpathSync } from 'fs';
5
+ import { writeFileSync, mkdirSync, readFileSync, realpathSync, unlinkSync } from 'fs';
6
6
  import { join, dirname, resolve } from 'path';
7
7
  import { fileURLToPath } from 'url';
8
8
  import next from 'next';
9
+ import { rotateIfLarge } from './bin/rotateLog.mjs';
9
10
 
10
11
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
12
  process.env.COCKPIT_ROOT = __dirname;
@@ -26,6 +27,34 @@ const cockpitHome = process.env.COCKPIT_HOME
26
27
  // path if it doesn't exist yet.
27
28
  const normHome = (p) => { try { return realpathSync(p); } catch { return p; } };
28
29
 
30
+ const SERVER_JSON = join(cockpitHome, 'server.json');
31
+
32
+ // Read once at boot. `version` backs `cockpit status` (process.env
33
+ // npm_package_version is only set when launched through an npm script, so it is
34
+ // null under `node server.mjs` / a service unit). `buildId` identifies the
35
+ // frontend assets this process serves — a browser tab left open across an
36
+ // upgrade still references the previous build's content-hashed chunks, which no
37
+ // longer exist on disk.
38
+ function readBuildInfo() {
39
+ let version = null;
40
+ try {
41
+ version = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf8')).version;
42
+ } catch { /* unreadable package.json — report null rather than fail boot */ }
43
+ let buildId = null;
44
+ try {
45
+ buildId = readFileSync(join(__dirname, '.next-prod', 'BUILD_ID'), 'utf8').trim();
46
+ } catch { /* dev mode has no prebuilt BUILD_ID */ }
47
+ return { version, buildId };
48
+ }
49
+ const buildInfo = readBuildInfo();
50
+ // Expose to the app layer. /api/health used to report
51
+ // process.env.npm_package_version, which npm only sets when the process was
52
+ // launched through an npm script — under `node server.mjs`, a service unit, or
53
+ // the global bin it was always null, so the health probe's version field was
54
+ // dead weight.
55
+ if (buildInfo.version) process.env.COCKPIT_VERSION = buildInfo.version;
56
+ if (buildInfo.buildId) process.env.COCKPIT_BUILD_ID = buildInfo.buildId;
57
+
29
58
  // Single-instance-per-data-dir guard. Probe the recorded instance's /api/health: if a live
30
59
  // cockpit on THIS data dir answers (app === 'cockpit' && home === this data dir), refuse and
31
60
  // point the user at COCKPIT_HOME. Connection refused / timeout / wrong signature → stale → take
@@ -34,7 +63,7 @@ const normHome = (p) => { try { return realpathSync(p); } catch { return p; } };
34
63
  async function ensureSingleInstance() {
35
64
  if (process.env.COCKPIT_FORCE) return;
36
65
  let prev;
37
- try { prev = JSON.parse(readFileSync(join(cockpitHome, 'server.json'), 'utf8')); } catch { return; }
66
+ try { prev = JSON.parse(readFileSync(SERVER_JSON, 'utf8')); } catch { return; }
38
67
  if (!prev || !prev.port) return;
39
68
  try {
40
69
  const ac = new AbortController();
@@ -47,7 +76,7 @@ async function ensureSingleInstance() {
47
76
  console.error(` Data dir: ${cockpitHome}`);
48
77
  console.error(` To run a second instance, isolate it with COCKPIT_HOME, e.g.:`);
49
78
  console.error(` COCKPIT_HOME=~/.cockpit-alt cockpit`);
50
- console.error(` False alarm? Delete ${join(cockpitHome, 'server.json')} or set COCKPIT_FORCE=1.\n`);
79
+ console.error(` False alarm? Delete ${SERVER_JSON} or set COCKPIT_FORCE=1.\n`);
51
80
  process.exit(1);
52
81
  }
53
82
  } catch { /* connection refused / timeout / non-cockpit → stale, proceed */ }
@@ -77,23 +106,66 @@ async function ensureSingleInstance() {
77
106
  let flushRunningSync = null;
78
107
 
79
108
  let _cleanupRan = false;
109
+
110
+ /**
111
+ * A child that must OUTLIVE us, registered on globalThis by /api/update.
112
+ *
113
+ * The updater is spawned by this process and then has to keep running after we
114
+ * exit — it is what reinstalls the package and starts the replacement server.
115
+ * `detached: true` is not enough: it moves the child into its own session and
116
+ * process group but leaves the parent/child relationship intact, so the
117
+ * `pkill -P <us>` below still matches it. Without this exclusion the server
118
+ * kills the very process that was supposed to bring it back, and the update
119
+ * stops dead with the server down.
120
+ *
121
+ * Read through globalThis because the route lives in Next's module graph and
122
+ * cannot import this file.
123
+ */
124
+ function handedOffPid() {
125
+ const pid = globalThis.__cockpitHandedOffPid;
126
+ return typeof pid === 'number' && pid > 0 ? pid : null;
127
+ }
128
+
80
129
  function killChildren() {
81
130
  if (_cleanupRan) return;
82
131
  _cleanupRan = true;
132
+ const spare = handedOffPid();
83
133
  if (process.platform === 'win32') {
84
- // Windows: list child PIDs via wmic, then taskkill /F /T each one —
85
- // running /T on ourselves would take this process down too
134
+ // Windows: list child PIDs, then taskkill /F /T each one — running /T on
135
+ // ourselves would take this process down too.
136
+ //
137
+ // This used to shell out to `wmic`, which is deprecated and absent by
138
+ // default from Windows 11 24H2; the failure was swallowed by the catch, so
139
+ // orphaned next-server workers were left running. PowerShell's CIM cmdlet
140
+ // is the supported replacement.
86
141
  try {
87
- const out = execSync(`wmic process where (ParentProcessId=${process.pid}) get ProcessId /value`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
88
- const pids = (out.match(/ProcessId=(\d+)/g) || []).map(s => s.split('=')[1]).filter(Boolean);
142
+ const out = execSync(
143
+ `powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter 'ParentProcessId=${process.pid}' | Select-Object -ExpandProperty ProcessId"`,
144
+ { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'], timeout: 5000 }
145
+ );
146
+ const pids = out.split(/\r?\n/).map(s => s.trim()).filter(s => /^\d+$/.test(s));
89
147
  for (const pid of pids) {
148
+ if (spare && Number(pid) === spare) continue;
90
149
  try { execSync(`taskkill /F /T /PID ${pid}`, { stdio: 'ignore' }); } catch {}
91
150
  }
92
151
  } catch {}
93
152
  return;
94
153
  }
95
- // POSIX: pkill -P kills direct children only, no recursion (next-server
96
- // and friends are all direct children — enough).
154
+ // POSIX: direct children only, no recursion (next-server and friends are all
155
+ // direct children — enough).
156
+ if (spare) {
157
+ // Enumerate and signal individually so the handed-off updater can be
158
+ // skipped; `pkill -P` has no exclusion form.
159
+ try {
160
+ const out = execSync(`pgrep -P ${process.pid}`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
161
+ for (const line of out.split('\n')) {
162
+ const pid = Number(line.trim());
163
+ if (!pid || pid === spare) continue;
164
+ try { process.kill(pid, 'SIGTERM'); } catch {}
165
+ }
166
+ } catch { /* pgrep exits 1 when there are no children */ }
167
+ return;
168
+ }
97
169
  // pkill exits 1 when nothing matches; not treated as an error.
98
170
  try { execSync(`pkill -TERM -P ${process.pid}`, { stdio: 'ignore' }); } catch {}
99
171
  }
@@ -103,8 +175,21 @@ function killChildren() {
103
175
  // through process.exit() → 'exit' fires → this single hook covers every
104
176
  // graceful shutdown. Flush live PTY scrollback to disk first, then kill the
105
177
  // children (the flush reads this process's own memory — independent of them).
178
+ // Best-effort: drop our server.json on the way out so `cockpit status` says
179
+ // "not running" straight away instead of probing a dead port. Guarded by pid so
180
+ // we never delete a record a newer instance has since written. A hard kill
181
+ // (SIGKILL) skips this entirely — which is why status probes /api/health rather
182
+ // than trusting the file's existence.
183
+ function removeServerJson() {
184
+ try {
185
+ const rec = JSON.parse(readFileSync(SERVER_JSON, 'utf8'));
186
+ if (rec && rec.pid === process.pid) unlinkSync(SERVER_JSON);
187
+ } catch { /* absent, unreadable, or not ours */ }
188
+ }
189
+
106
190
  process.on('exit', () => {
107
191
  try { flushRunningSync?.(); } catch {}
192
+ removeServerJson();
108
193
  killChildren();
109
194
  });
110
195
 
@@ -173,6 +258,17 @@ const handle = app.getRequestHandler();
173
258
 
174
259
  app.prepare().then(async () => {
175
260
  await ensureSingleInstance();
261
+
262
+ // Rotate the app log — AFTER the single-instance check, never before. A
263
+ // second `cockpit` on the same data dir is rejected above, and if it had
264
+ // rotated first it would have consumed a generation of a *running*
265
+ // instance's history just by failing to start.
266
+ //
267
+ // Safe to do here because the Effect logger appends per write (fs/promises
268
+ // appendFile) rather than holding an fd, so nothing has the file open and it
269
+ // recreates it on the next line. This is also what makes it work on Windows,
270
+ // where renaming a file that some process holds open fails outright.
271
+ rotateIfLarge(join(cockpitHome, 'logs', 'cockpit.log'));
176
272
  const upgradeHandler = app.getUpgradeHandler();
177
273
  // v2 P8: HTTP intercepts (handleTerminalApi / handleBrowserApi) moved to src/lib/httpApi.ts
178
274
  const { handleUpgrade, broadcastToGlobalState } = await import(dev ? './src/lib/wsServer.ts' : './dist/wsServer.mjs');
@@ -363,10 +459,30 @@ app.prepare().then(async () => {
363
459
  const url = `http://localhost:${port}`;
364
460
  console.log(`> Ready on ${url}`);
365
461
 
366
- // Write server.json so CLI subcommands can read the port
462
+ // Discoverability: `cockpit start` is the only way to survive closing the
463
+ // terminal (there is no service integration), but nothing else advertises
464
+ // it. Only worth saying when we ARE in the foreground — a backgrounded
465
+ // instance's operator already knows.
466
+ if ((process.env.COCKPIT_MANAGED || 'foreground') === 'foreground') {
467
+ console.log(' Tip: `cockpit start` runs it in the background — then this terminal can be closed.');
468
+ }
469
+
470
+ // Write server.json so CLI subcommands can read the port, and so
471
+ // `cockpit status` / `stop` can find and identify this instance.
367
472
  try {
368
473
  mkdirSync(cockpitHome, { recursive: true });
369
- writeFileSync(join(cockpitHome, 'server.json'), JSON.stringify({ pid: process.pid, port }, null, 2));
474
+ writeFileSync(SERVER_JSON, JSON.stringify({
475
+ pid: process.pid,
476
+ port,
477
+ version: buildInfo.version,
478
+ buildId: buildInfo.buildId,
479
+ startedAt: Date.now(),
480
+ // How this process is supervised, set by whoever launched it:
481
+ // 'foreground' (plain `cockpit`), 'bare' (`cockpit start`), or a
482
+ // service manager later on. `cockpit stop` uses it to decide whether
483
+ // stopping also means telling a supervisor not to restart us.
484
+ managed: process.env.COCKPIT_MANAGED || 'foreground',
485
+ }, null, 2));
370
486
  } catch {}
371
487
 
372
488
  // Auto-open the browser in prod mode (disable with --no-open)