@surething/cockpit 1.0.222 → 1.0.224

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 (606) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +8 -3
  3. package/.next-prod/build-manifest.json +2 -2
  4. package/.next-prod/prerender-manifest.json +3 -3
  5. package/.next-prod/required-server-files.js +2 -1
  6. package/.next-prod/required-server-files.json +2 -1
  7. package/.next-prod/routes-manifest.json +30 -0
  8. package/.next-prod/server/app/_global-error/page.js +3 -3
  9. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next-prod/server/app/_global-error.html +1 -1
  12. package/.next-prod/server/app/_global-error.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next-prod/server/app/_not-found/page.js +2 -2
  20. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next-prod/server/app/_not-found.html +49 -1
  23. package/.next-prod/server/app/_not-found.rsc +65 -14
  24. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +65 -14
  25. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  26. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +53 -5
  27. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  29. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/.next-prod/server/app/api/agent/test/route.js +1 -1
  31. package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
  32. package/.next-prod/server/app/api/bash/route.js +1 -1
  33. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  34. package/.next-prod/server/app/api/chat/codex/route.js +16 -10
  35. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/chat/deepseek/route.js +3 -3
  37. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  38. package/.next-prod/server/app/api/chat/kimi/route.js +10 -10
  39. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/chat/ollama/route.js +8 -8
  41. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/chat/pty-input/route.js +1 -1
  43. package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
  44. package/.next-prod/server/app/api/chat/route.js +12 -12
  45. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/chat/stop/route.js +1 -0
  47. package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -0
  48. package/.next-prod/server/app/api/chat/stop/route_client-reference-manifest.js +1 -0
  49. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  50. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/commands/route.js +1 -1
  52. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/comments/route.js +1 -1
  54. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/db/columns/route.js +2 -2
  56. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  58. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  60. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/db/export/route.js +1 -1
  62. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/db/query/route.js +1 -1
  64. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/db/schemas/route.js +1 -1
  66. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/dev/spans/route.js +1 -1
  68. package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  70. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/file/route.js +1 -1
  72. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  74. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  76. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  78. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  80. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  82. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/files/index/route.js +1 -1
  84. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/files/init/route.js +1 -1
  86. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  88. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/files/read/route.js +1 -1
  90. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  92. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  94. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/files/save/route.js +1 -1
  96. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/files/search/route.js +1 -1
  98. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/files/stat/route.js +1 -1
  100. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/files/text/route.js +1 -1
  102. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  104. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  106. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  108. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  110. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
  112. package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  114. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  116. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  118. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/git/status/route.js +1 -1
  120. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  122. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  123. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  124. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  125. package/.next-prod/server/app/api/global-state/route.js +1 -1
  126. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  128. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  130. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  132. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  134. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  136. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  138. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  140. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  141. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  142. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  143. package/.next-prod/server/app/api/mysql/columns/route.js +2 -2
  144. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  146. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  147. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  148. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  150. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  152. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/mysql/schemas/route.js +1 -1
  154. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  156. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  158. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  160. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  162. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/note/route.js +1 -1
  164. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  165. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  166. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  167. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  168. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  170. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  171. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  172. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  173. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  174. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  175. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  176. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  177. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  178. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  179. package/.next-prod/server/app/api/project-state/route.js +2 -1
  180. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
  182. package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
  183. package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
  184. package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
  185. package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
  186. package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
  187. package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
  188. package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
  189. package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
  190. package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
  191. package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
  192. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  193. package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
  194. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  195. package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
  196. package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
  197. package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
  198. package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
  199. package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
  200. package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
  201. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  202. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  203. package/.next-prod/server/app/api/projects/route.js +1 -1
  204. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  205. package/.next-prod/server/app/api/push/public-key/route.js +1 -0
  206. package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -0
  207. package/.next-prod/server/app/api/push/public-key/route_client-reference-manifest.js +1 -0
  208. package/.next-prod/server/app/api/push/subscribe/route.js +1 -0
  209. package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -0
  210. package/.next-prod/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -0
  211. package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -0
  212. package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -0
  213. package/.next-prod/server/app/api/push/unsubscribe/route_client-reference-manifest.js +1 -0
  214. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  215. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  216. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  217. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  218. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  219. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  220. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  221. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  222. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  223. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  224. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  225. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  226. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  227. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  228. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  229. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  230. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  231. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  232. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  233. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  234. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  235. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  236. package/.next-prod/server/app/api/review/order/route.js +1 -1
  237. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  238. package/.next-prod/server/app/api/review/route.js +1 -1
  239. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  240. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  241. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  242. package/.next-prod/server/app/api/review/users/route.js +1 -1
  243. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  244. package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
  245. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  246. package/.next-prod/server/app/api/services/config/route.js +1 -1
  247. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  248. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  249. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  250. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  251. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  252. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  253. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  254. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  255. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  256. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  257. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  258. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  259. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  260. package/.next-prod/server/app/api/sessions/route.js +1 -1
  261. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  262. package/.next-prod/server/app/api/settings/route.js +1 -1
  263. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  264. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  265. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  266. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  267. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  268. package/.next-prod/server/app/api/skills/route.js +1 -1
  269. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  270. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  271. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  272. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  273. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  274. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  275. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  276. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  277. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  278. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  279. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  280. package/.next-prod/server/app/api/version/route.js +1 -1
  281. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  282. package/.next-prod/server/app/favicon.ico/route.js +1 -1
  283. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  284. package/.next-prod/server/app/m/page.js +2 -0
  285. package/.next-prod/server/app/m/page.js.nft.json +1 -0
  286. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -0
  287. package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
  288. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  289. package/.next-prod/server/app/manifest.webmanifest.body +1 -1
  290. package/.next-prod/server/app/page.js +2 -2
  291. package/.next-prod/server/app/page.js.nft.json +1 -1
  292. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  293. package/.next-prod/server/app/project/page.js +2 -2
  294. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  295. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  296. package/.next-prod/server/app/review/[id]/page.js +2 -2
  297. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  298. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  299. package/.next-prod/server/app-paths-manifest.json +8 -3
  300. package/.next-prod/server/chunks/{383.js → 2637.js} +2 -2
  301. package/.next-prod/server/chunks/2939.js +1 -1
  302. package/.next-prod/server/chunks/{3408.js → 5337.js} +3 -3
  303. package/.next-prod/server/chunks/6955.js +1 -1
  304. package/.next-prod/server/chunks/7003.js +1 -0
  305. package/.next-prod/server/chunks/8916.js +1 -1
  306. package/.next-prod/server/chunks/9658.js +10 -8
  307. package/.next-prod/server/middleware-build-manifest.js +1 -1
  308. package/.next-prod/server/pages/404.html +49 -1
  309. package/.next-prod/server/pages/500.html +1 -1
  310. package/.next-prod/server/server-reference-manifest.json +1 -1
  311. package/.next-prod/static/cTq1mDm5D_oZLiumFG6di/_buildManifest.js +1 -0
  312. package/.next-prod/static/chunks/2032-6fcfaaa6aa730f6d.js +1 -0
  313. package/.next-prod/static/chunks/2576-fe33a1bae037bd9b.js +25 -0
  314. package/.next-prod/static/chunks/471-7c4fab47613ffe5c.js +4 -0
  315. package/.next-prod/static/chunks/5156-2953531342c13696.js +3 -0
  316. package/.next-prod/static/chunks/9428-5c287b255a9831e6.js +20 -0
  317. package/.next-prod/static/chunks/9469-fb5c6f08ba6bab74.js +14 -0
  318. package/.next-prod/static/chunks/app/_global-error/page-cc849cd7b6f01cad.js +1 -0
  319. package/.next-prod/static/chunks/app/api/agent/test/route-cc849cd7b6f01cad.js +1 -0
  320. package/.next-prod/static/chunks/app/api/bash/route-cc849cd7b6f01cad.js +1 -0
  321. package/.next-prod/static/chunks/app/api/chat/codex/route-cc849cd7b6f01cad.js +1 -0
  322. package/.next-prod/static/chunks/app/api/chat/deepseek/route-cc849cd7b6f01cad.js +1 -0
  323. package/.next-prod/static/chunks/app/api/chat/kimi/route-cc849cd7b6f01cad.js +1 -0
  324. package/.next-prod/static/chunks/app/api/chat/ollama/route-cc849cd7b6f01cad.js +1 -0
  325. package/.next-prod/static/chunks/app/api/chat/pty-input/route-cc849cd7b6f01cad.js +1 -0
  326. package/.next-prod/static/chunks/app/api/chat/route-cc849cd7b6f01cad.js +1 -0
  327. package/.next-prod/static/chunks/app/api/chat/stop/route-cc849cd7b6f01cad.js +1 -0
  328. package/.next-prod/static/chunks/app/api/claude-stats/route-cc849cd7b6f01cad.js +1 -0
  329. package/.next-prod/static/chunks/app/api/commands/route-cc849cd7b6f01cad.js +1 -0
  330. package/.next-prod/static/chunks/app/api/comments/route-cc849cd7b6f01cad.js +1 -0
  331. package/.next-prod/static/chunks/app/api/db/columns/route-cc849cd7b6f01cad.js +1 -0
  332. package/.next-prod/static/chunks/app/api/db/connect/route-cc849cd7b6f01cad.js +1 -0
  333. package/.next-prod/static/chunks/app/api/db/disconnect/route-cc849cd7b6f01cad.js +1 -0
  334. package/.next-prod/static/chunks/app/api/db/export/route-cc849cd7b6f01cad.js +1 -0
  335. package/.next-prod/static/chunks/app/api/db/query/route-cc849cd7b6f01cad.js +1 -0
  336. package/.next-prod/static/chunks/app/api/db/schemas/route-cc849cd7b6f01cad.js +1 -0
  337. package/.next-prod/static/chunks/app/api/dev/spans/route-cc849cd7b6f01cad.js +1 -0
  338. package/.next-prod/static/chunks/app/api/extension/version/route-cc849cd7b6f01cad.js +1 -0
  339. package/.next-prod/static/chunks/app/api/file/route-cc849cd7b6f01cad.js +1 -0
  340. package/.next-prod/static/chunks/app/api/files/blame/route-cc849cd7b6f01cad.js +1 -0
  341. package/.next-prod/static/chunks/app/api/files/clipboard/route-cc849cd7b6f01cad.js +1 -0
  342. package/.next-prod/static/chunks/app/api/files/copy/route-cc849cd7b6f01cad.js +1 -0
  343. package/.next-prod/static/chunks/app/api/files/delete/route-cc849cd7b6f01cad.js +1 -0
  344. package/.next-prod/static/chunks/app/api/files/expanded/route-cc849cd7b6f01cad.js +1 -0
  345. package/.next-prod/static/chunks/app/api/files/index/route-cc849cd7b6f01cad.js +1 -0
  346. package/.next-prod/static/chunks/app/api/files/init/route-cc849cd7b6f01cad.js +1 -0
  347. package/.next-prod/static/chunks/app/api/files/paste/route-cc849cd7b6f01cad.js +1 -0
  348. package/.next-prod/static/chunks/app/api/files/read/route-cc849cd7b6f01cad.js +1 -0
  349. package/.next-prod/static/chunks/app/api/files/readdir/route-cc849cd7b6f01cad.js +1 -0
  350. package/.next-prod/static/chunks/app/api/files/recent/route-cc849cd7b6f01cad.js +1 -0
  351. package/.next-prod/static/chunks/app/api/files/save/route-cc849cd7b6f01cad.js +1 -0
  352. package/.next-prod/static/chunks/app/api/files/search/route-cc849cd7b6f01cad.js +1 -0
  353. package/.next-prod/static/chunks/app/api/files/stat/route-cc849cd7b6f01cad.js +1 -0
  354. package/.next-prod/static/chunks/app/api/files/text/route-cc849cd7b6f01cad.js +1 -0
  355. package/.next-prod/static/chunks/app/api/git/branch-diff/route-cc849cd7b6f01cad.js +1 -0
  356. package/.next-prod/static/chunks/app/api/git/branches/route-cc849cd7b6f01cad.js +1 -0
  357. package/.next-prod/static/chunks/app/api/git/commit-diff/route-cc849cd7b6f01cad.js +1 -0
  358. package/.next-prod/static/chunks/app/api/git/commits/route-cc849cd7b6f01cad.js +1 -0
  359. package/.next-prod/static/chunks/app/api/git/current-branch/route-cc849cd7b6f01cad.js +1 -0
  360. package/.next-prod/static/chunks/app/api/git/diff/route-cc849cd7b6f01cad.js +1 -0
  361. package/.next-prod/static/chunks/app/api/git/discard/route-cc849cd7b6f01cad.js +1 -0
  362. package/.next-prod/static/chunks/app/api/git/stage/route-cc849cd7b6f01cad.js +1 -0
  363. package/.next-prod/static/chunks/app/api/git/status/route-cc849cd7b6f01cad.js +1 -0
  364. package/.next-prod/static/chunks/app/api/git/unstage/route-cc849cd7b6f01cad.js +1 -0
  365. package/.next-prod/static/chunks/app/api/git/worktree/route-cc849cd7b6f01cad.js +1 -0
  366. package/.next-prod/static/chunks/app/api/global-state/route-cc849cd7b6f01cad.js +1 -0
  367. package/.next-prod/static/chunks/app/api/jupyter/load/route-cc849cd7b6f01cad.js +1 -0
  368. package/.next-prod/static/chunks/app/api/jupyter/save/route-cc849cd7b6f01cad.js +1 -0
  369. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-cc849cd7b6f01cad.js +1 -0
  370. package/.next-prod/static/chunks/app/api/lsp/definition/route-cc849cd7b6f01cad.js +1 -0
  371. package/.next-prod/static/chunks/app/api/lsp/hover/route-cc849cd7b6f01cad.js +1 -0
  372. package/.next-prod/static/chunks/app/api/lsp/references/route-cc849cd7b6f01cad.js +1 -0
  373. package/.next-prod/static/chunks/app/api/lsp/status/route-cc849cd7b6f01cad.js +1 -0
  374. package/.next-prod/static/chunks/app/api/lsp/warmup/route-cc849cd7b6f01cad.js +1 -0
  375. package/.next-prod/static/chunks/app/api/mysql/columns/route-cc849cd7b6f01cad.js +1 -0
  376. package/.next-prod/static/chunks/app/api/mysql/connect/route-cc849cd7b6f01cad.js +1 -0
  377. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-cc849cd7b6f01cad.js +1 -0
  378. package/.next-prod/static/chunks/app/api/mysql/export/route-cc849cd7b6f01cad.js +1 -0
  379. package/.next-prod/static/chunks/app/api/mysql/query/route-cc849cd7b6f01cad.js +1 -0
  380. package/.next-prod/static/chunks/app/api/mysql/schemas/route-cc849cd7b6f01cad.js +1 -0
  381. package/.next-prod/static/chunks/app/api/neo4j/connect/route-cc849cd7b6f01cad.js +1 -0
  382. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-cc849cd7b6f01cad.js +1 -0
  383. package/.next-prod/static/chunks/app/api/neo4j/query/route-cc849cd7b6f01cad.js +1 -0
  384. package/.next-prod/static/chunks/app/api/neo4j/schema/route-cc849cd7b6f01cad.js +1 -0
  385. package/.next-prod/static/chunks/app/api/note/route-cc849cd7b6f01cad.js +1 -0
  386. package/.next-prod/static/chunks/app/api/ollama/models/route-cc849cd7b6f01cad.js +1 -0
  387. package/.next-prod/static/chunks/app/api/ollama/start/route-cc849cd7b6f01cad.js +1 -0
  388. package/.next-prod/static/chunks/app/api/open-cursor/route-cc849cd7b6f01cad.js +1 -0
  389. package/.next-prod/static/chunks/app/api/open-vscode/route-cc849cd7b6f01cad.js +1 -0
  390. package/.next-prod/static/chunks/app/api/pick-folder/route-cc849cd7b6f01cad.js +1 -0
  391. package/.next-prod/static/chunks/app/api/pinned-sessions/route-cc849cd7b6f01cad.js +1 -0
  392. package/.next-prod/static/chunks/app/api/project-settings/route-cc849cd7b6f01cad.js +1 -0
  393. package/.next-prod/static/chunks/app/api/project-state/route-cc849cd7b6f01cad.js +1 -0
  394. package/.next-prod/static/chunks/app/api/projectGraph/affected/route-cc849cd7b6f01cad.js +1 -0
  395. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-cc849cd7b6f01cad.js +1 -0
  396. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-cc849cd7b6f01cad.js +1 -0
  397. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-cc849cd7b6f01cad.js +1 -0
  398. package/.next-prod/static/chunks/app/api/projectGraph/context/route-cc849cd7b6f01cad.js +1 -0
  399. package/.next-prod/static/chunks/app/api/projectGraph/file/route-cc849cd7b6f01cad.js +1 -0
  400. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-cc849cd7b6f01cad.js +1 -0
  401. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-cc849cd7b6f01cad.js +1 -0
  402. package/.next-prod/static/chunks/app/api/projectGraph/related/route-cc849cd7b6f01cad.js +1 -0
  403. package/.next-prod/static/chunks/app/api/projectGraph/risk/route-cc849cd7b6f01cad.js +1 -0
  404. package/.next-prod/static/chunks/app/api/projectGraph/search/route-cc849cd7b6f01cad.js +1 -0
  405. package/.next-prod/static/chunks/app/api/projects/route-cc849cd7b6f01cad.js +1 -0
  406. package/.next-prod/static/chunks/app/api/push/public-key/route-cc849cd7b6f01cad.js +1 -0
  407. package/.next-prod/static/chunks/app/api/push/subscribe/route-cc849cd7b6f01cad.js +1 -0
  408. package/.next-prod/static/chunks/app/api/push/unsubscribe/route-cc849cd7b6f01cad.js +1 -0
  409. package/.next-prod/static/chunks/app/api/redis/command/route-cc849cd7b6f01cad.js +1 -0
  410. package/.next-prod/static/chunks/app/api/redis/connect/route-cc849cd7b6f01cad.js +1 -0
  411. package/.next-prod/static/chunks/app/api/redis/delete/route-cc849cd7b6f01cad.js +1 -0
  412. package/.next-prod/static/chunks/app/api/redis/disconnect/route-cc849cd7b6f01cad.js +1 -0
  413. package/.next-prod/static/chunks/app/api/redis/get/route-cc849cd7b6f01cad.js +1 -0
  414. package/.next-prod/static/chunks/app/api/redis/keys/route-cc849cd7b6f01cad.js +1 -0
  415. package/.next-prod/static/chunks/app/api/redis/set/route-cc849cd7b6f01cad.js +1 -0
  416. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-cc849cd7b6f01cad.js +1 -0
  417. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-cc849cd7b6f01cad.js +1 -0
  418. package/.next-prod/static/chunks/app/api/review/[id]/route-cc849cd7b6f01cad.js +1 -0
  419. package/.next-prod/static/chunks/app/api/review/identify/route-cc849cd7b6f01cad.js +1 -0
  420. package/.next-prod/static/chunks/app/api/review/order/route-cc849cd7b6f01cad.js +1 -0
  421. package/.next-prod/static/chunks/app/api/review/route-cc849cd7b6f01cad.js +1 -0
  422. package/.next-prod/static/chunks/app/api/review/share-info/route-cc849cd7b6f01cad.js +1 -0
  423. package/.next-prod/static/chunks/app/api/review/users/route-cc849cd7b6f01cad.js +1 -0
  424. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-cc849cd7b6f01cad.js +1 -0
  425. package/.next-prod/static/chunks/app/api/services/config/route-cc849cd7b6f01cad.js +1 -0
  426. package/.next-prod/static/chunks/app/api/services/scripts/route-cc849cd7b6f01cad.js +1 -0
  427. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-cc849cd7b6f01cad.js +1 -0
  428. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-cc849cd7b6f01cad.js +1 -0
  429. package/.next-prod/static/chunks/app/api/session-by-path/route-cc849cd7b6f01cad.js +1 -0
  430. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-cc849cd7b6f01cad.js +1 -0
  431. package/.next-prod/static/chunks/app/api/sessions/projects/route-cc849cd7b6f01cad.js +1 -0
  432. package/.next-prod/static/chunks/app/api/sessions/route-cc849cd7b6f01cad.js +1 -0
  433. package/.next-prod/static/chunks/app/api/settings/route-cc849cd7b6f01cad.js +1 -0
  434. package/.next-prod/static/chunks/app/api/skills/[id]/route-cc849cd7b6f01cad.js +1 -0
  435. package/.next-prod/static/chunks/app/api/skills/content/route-cc849cd7b6f01cad.js +1 -0
  436. package/.next-prod/static/chunks/app/api/skills/route-cc849cd7b6f01cad.js +1 -0
  437. package/.next-prod/static/chunks/app/api/terminal/aliases/route-cc849cd7b6f01cad.js +1 -0
  438. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-cc849cd7b6f01cad.js +1 -0
  439. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-cc849cd7b6f01cad.js +1 -0
  440. package/.next-prod/static/chunks/app/api/terminal/env/route-cc849cd7b6f01cad.js +1 -0
  441. package/.next-prod/static/chunks/app/api/terminal/history/route-cc849cd7b6f01cad.js +1 -0
  442. package/.next-prod/static/chunks/app/api/version/route-cc849cd7b6f01cad.js +1 -0
  443. package/.next-prod/static/chunks/app/{layout-de73b7c59e956b47.js → layout-312d106fe47907df.js} +1 -1
  444. package/.next-prod/static/chunks/app/m/page-0be3799c1b38c991.js +1 -0
  445. package/.next-prod/static/chunks/app/manifest.webmanifest/route-cc849cd7b6f01cad.js +1 -0
  446. package/.next-prod/static/chunks/app/{page-d539c7c36a32fd49.js → page-db70085227aa56aa.js} +1 -1
  447. package/.next-prod/static/chunks/app/project/{page-d539c7c36a32fd49.js → page-db70085227aa56aa.js} +1 -1
  448. package/.next-prod/static/chunks/app/review/[id]/{page-7db3a48a13f1840c.js → page-31d70fd518d4c7e6.js} +1 -1
  449. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-cc849cd7b6f01cad.js +1 -0
  450. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-cc849cd7b6f01cad.js +1 -0
  451. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-cc849cd7b6f01cad.js +1 -0
  452. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-cc849cd7b6f01cad.js +1 -0
  453. package/.next-prod/static/css/217cb3486f7b68d7.css +1 -0
  454. package/.next-prod/trace +13 -13
  455. package/.next-prod/trace-build +1 -1
  456. package/.next-prod/types/app/api/chat/stop/route.ts +351 -0
  457. package/.next-prod/types/app/api/push/public-key/route.ts +351 -0
  458. package/.next-prod/types/app/api/push/subscribe/route.ts +351 -0
  459. package/.next-prod/types/app/api/push/unsubscribe/route.ts +351 -0
  460. package/.next-prod/types/app/m/page.ts +87 -0
  461. package/.next-prod/types/routes.d.ts +7 -2
  462. package/.next-prod/types/validator.ts +45 -0
  463. package/dist/{chunk-6BFKFQG5.mjs → chunk-5BOGGUGT.mjs} +3 -1
  464. package/dist/{chunk-ICB7IS3A.mjs → chunk-BM3ZNL5S.mjs} +1 -1
  465. package/dist/{chunk-RQEEQUTA.mjs → chunk-SDWQ72YQ.mjs} +184 -117
  466. package/dist/httpApi.mjs +2 -2
  467. package/dist/scheduledTasks.mjs +34 -66
  468. package/dist/{server-Z6V4HKGV.mjs → server-DRMO2DUJ.mjs} +2 -2
  469. package/dist/wsServer.mjs +81 -10
  470. package/next.config.mjs +15 -0
  471. package/package.json +7 -2
  472. package/public/boot.js +32 -4
  473. package/public/push-sw.js +51 -0
  474. package/.next-prod/server/chunks/5616.js +0 -1
  475. package/.next-prod/static/-btylnafgKD-DMe4UTayG/_buildManifest.js +0 -1
  476. package/.next-prod/static/chunks/2759-50f11ab1460db5e0.js +0 -23
  477. package/.next-prod/static/chunks/6345-bf76736c9229b11d.js +0 -14
  478. package/.next-prod/static/chunks/9403-57da0d8d38886ffe.js +0 -25
  479. package/.next-prod/static/chunks/app/_global-error/page-0247c08c6f41b71e.js +0 -1
  480. package/.next-prod/static/chunks/app/api/agent/test/route-0247c08c6f41b71e.js +0 -1
  481. package/.next-prod/static/chunks/app/api/bash/route-0247c08c6f41b71e.js +0 -1
  482. package/.next-prod/static/chunks/app/api/chat/codex/route-0247c08c6f41b71e.js +0 -1
  483. package/.next-prod/static/chunks/app/api/chat/deepseek/route-0247c08c6f41b71e.js +0 -1
  484. package/.next-prod/static/chunks/app/api/chat/kimi/route-0247c08c6f41b71e.js +0 -1
  485. package/.next-prod/static/chunks/app/api/chat/ollama/route-0247c08c6f41b71e.js +0 -1
  486. package/.next-prod/static/chunks/app/api/chat/pty-input/route-0247c08c6f41b71e.js +0 -1
  487. package/.next-prod/static/chunks/app/api/chat/route-0247c08c6f41b71e.js +0 -1
  488. package/.next-prod/static/chunks/app/api/claude-stats/route-0247c08c6f41b71e.js +0 -1
  489. package/.next-prod/static/chunks/app/api/commands/route-0247c08c6f41b71e.js +0 -1
  490. package/.next-prod/static/chunks/app/api/comments/route-0247c08c6f41b71e.js +0 -1
  491. package/.next-prod/static/chunks/app/api/db/columns/route-0247c08c6f41b71e.js +0 -1
  492. package/.next-prod/static/chunks/app/api/db/connect/route-0247c08c6f41b71e.js +0 -1
  493. package/.next-prod/static/chunks/app/api/db/disconnect/route-0247c08c6f41b71e.js +0 -1
  494. package/.next-prod/static/chunks/app/api/db/export/route-0247c08c6f41b71e.js +0 -1
  495. package/.next-prod/static/chunks/app/api/db/query/route-0247c08c6f41b71e.js +0 -1
  496. package/.next-prod/static/chunks/app/api/db/schemas/route-0247c08c6f41b71e.js +0 -1
  497. package/.next-prod/static/chunks/app/api/dev/spans/route-0247c08c6f41b71e.js +0 -1
  498. package/.next-prod/static/chunks/app/api/extension/version/route-0247c08c6f41b71e.js +0 -1
  499. package/.next-prod/static/chunks/app/api/file/route-0247c08c6f41b71e.js +0 -1
  500. package/.next-prod/static/chunks/app/api/files/blame/route-0247c08c6f41b71e.js +0 -1
  501. package/.next-prod/static/chunks/app/api/files/clipboard/route-0247c08c6f41b71e.js +0 -1
  502. package/.next-prod/static/chunks/app/api/files/copy/route-0247c08c6f41b71e.js +0 -1
  503. package/.next-prod/static/chunks/app/api/files/delete/route-0247c08c6f41b71e.js +0 -1
  504. package/.next-prod/static/chunks/app/api/files/expanded/route-0247c08c6f41b71e.js +0 -1
  505. package/.next-prod/static/chunks/app/api/files/index/route-0247c08c6f41b71e.js +0 -1
  506. package/.next-prod/static/chunks/app/api/files/init/route-0247c08c6f41b71e.js +0 -1
  507. package/.next-prod/static/chunks/app/api/files/paste/route-0247c08c6f41b71e.js +0 -1
  508. package/.next-prod/static/chunks/app/api/files/read/route-0247c08c6f41b71e.js +0 -1
  509. package/.next-prod/static/chunks/app/api/files/readdir/route-0247c08c6f41b71e.js +0 -1
  510. package/.next-prod/static/chunks/app/api/files/recent/route-0247c08c6f41b71e.js +0 -1
  511. package/.next-prod/static/chunks/app/api/files/save/route-0247c08c6f41b71e.js +0 -1
  512. package/.next-prod/static/chunks/app/api/files/search/route-0247c08c6f41b71e.js +0 -1
  513. package/.next-prod/static/chunks/app/api/files/stat/route-0247c08c6f41b71e.js +0 -1
  514. package/.next-prod/static/chunks/app/api/files/text/route-0247c08c6f41b71e.js +0 -1
  515. package/.next-prod/static/chunks/app/api/git/branch-diff/route-0247c08c6f41b71e.js +0 -1
  516. package/.next-prod/static/chunks/app/api/git/branches/route-0247c08c6f41b71e.js +0 -1
  517. package/.next-prod/static/chunks/app/api/git/commit-diff/route-0247c08c6f41b71e.js +0 -1
  518. package/.next-prod/static/chunks/app/api/git/commits/route-0247c08c6f41b71e.js +0 -1
  519. package/.next-prod/static/chunks/app/api/git/current-branch/route-0247c08c6f41b71e.js +0 -1
  520. package/.next-prod/static/chunks/app/api/git/diff/route-0247c08c6f41b71e.js +0 -1
  521. package/.next-prod/static/chunks/app/api/git/discard/route-0247c08c6f41b71e.js +0 -1
  522. package/.next-prod/static/chunks/app/api/git/stage/route-0247c08c6f41b71e.js +0 -1
  523. package/.next-prod/static/chunks/app/api/git/status/route-0247c08c6f41b71e.js +0 -1
  524. package/.next-prod/static/chunks/app/api/git/unstage/route-0247c08c6f41b71e.js +0 -1
  525. package/.next-prod/static/chunks/app/api/git/worktree/route-0247c08c6f41b71e.js +0 -1
  526. package/.next-prod/static/chunks/app/api/global-state/route-0247c08c6f41b71e.js +0 -1
  527. package/.next-prod/static/chunks/app/api/jupyter/load/route-0247c08c6f41b71e.js +0 -1
  528. package/.next-prod/static/chunks/app/api/jupyter/save/route-0247c08c6f41b71e.js +0 -1
  529. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-0247c08c6f41b71e.js +0 -1
  530. package/.next-prod/static/chunks/app/api/lsp/definition/route-0247c08c6f41b71e.js +0 -1
  531. package/.next-prod/static/chunks/app/api/lsp/hover/route-0247c08c6f41b71e.js +0 -1
  532. package/.next-prod/static/chunks/app/api/lsp/references/route-0247c08c6f41b71e.js +0 -1
  533. package/.next-prod/static/chunks/app/api/lsp/status/route-0247c08c6f41b71e.js +0 -1
  534. package/.next-prod/static/chunks/app/api/lsp/warmup/route-0247c08c6f41b71e.js +0 -1
  535. package/.next-prod/static/chunks/app/api/mysql/columns/route-0247c08c6f41b71e.js +0 -1
  536. package/.next-prod/static/chunks/app/api/mysql/connect/route-0247c08c6f41b71e.js +0 -1
  537. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-0247c08c6f41b71e.js +0 -1
  538. package/.next-prod/static/chunks/app/api/mysql/export/route-0247c08c6f41b71e.js +0 -1
  539. package/.next-prod/static/chunks/app/api/mysql/query/route-0247c08c6f41b71e.js +0 -1
  540. package/.next-prod/static/chunks/app/api/mysql/schemas/route-0247c08c6f41b71e.js +0 -1
  541. package/.next-prod/static/chunks/app/api/neo4j/connect/route-0247c08c6f41b71e.js +0 -1
  542. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-0247c08c6f41b71e.js +0 -1
  543. package/.next-prod/static/chunks/app/api/neo4j/query/route-0247c08c6f41b71e.js +0 -1
  544. package/.next-prod/static/chunks/app/api/neo4j/schema/route-0247c08c6f41b71e.js +0 -1
  545. package/.next-prod/static/chunks/app/api/note/route-0247c08c6f41b71e.js +0 -1
  546. package/.next-prod/static/chunks/app/api/ollama/models/route-0247c08c6f41b71e.js +0 -1
  547. package/.next-prod/static/chunks/app/api/ollama/start/route-0247c08c6f41b71e.js +0 -1
  548. package/.next-prod/static/chunks/app/api/open-cursor/route-0247c08c6f41b71e.js +0 -1
  549. package/.next-prod/static/chunks/app/api/open-vscode/route-0247c08c6f41b71e.js +0 -1
  550. package/.next-prod/static/chunks/app/api/pick-folder/route-0247c08c6f41b71e.js +0 -1
  551. package/.next-prod/static/chunks/app/api/pinned-sessions/route-0247c08c6f41b71e.js +0 -1
  552. package/.next-prod/static/chunks/app/api/project-settings/route-0247c08c6f41b71e.js +0 -1
  553. package/.next-prod/static/chunks/app/api/project-state/route-0247c08c6f41b71e.js +0 -1
  554. package/.next-prod/static/chunks/app/api/projectGraph/affected/route-0247c08c6f41b71e.js +0 -1
  555. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-0247c08c6f41b71e.js +0 -1
  556. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-0247c08c6f41b71e.js +0 -1
  557. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-0247c08c6f41b71e.js +0 -1
  558. package/.next-prod/static/chunks/app/api/projectGraph/context/route-0247c08c6f41b71e.js +0 -1
  559. package/.next-prod/static/chunks/app/api/projectGraph/file/route-0247c08c6f41b71e.js +0 -1
  560. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-0247c08c6f41b71e.js +0 -1
  561. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-0247c08c6f41b71e.js +0 -1
  562. package/.next-prod/static/chunks/app/api/projectGraph/related/route-0247c08c6f41b71e.js +0 -1
  563. package/.next-prod/static/chunks/app/api/projectGraph/risk/route-0247c08c6f41b71e.js +0 -1
  564. package/.next-prod/static/chunks/app/api/projectGraph/search/route-0247c08c6f41b71e.js +0 -1
  565. package/.next-prod/static/chunks/app/api/projects/route-0247c08c6f41b71e.js +0 -1
  566. package/.next-prod/static/chunks/app/api/redis/command/route-0247c08c6f41b71e.js +0 -1
  567. package/.next-prod/static/chunks/app/api/redis/connect/route-0247c08c6f41b71e.js +0 -1
  568. package/.next-prod/static/chunks/app/api/redis/delete/route-0247c08c6f41b71e.js +0 -1
  569. package/.next-prod/static/chunks/app/api/redis/disconnect/route-0247c08c6f41b71e.js +0 -1
  570. package/.next-prod/static/chunks/app/api/redis/get/route-0247c08c6f41b71e.js +0 -1
  571. package/.next-prod/static/chunks/app/api/redis/keys/route-0247c08c6f41b71e.js +0 -1
  572. package/.next-prod/static/chunks/app/api/redis/set/route-0247c08c6f41b71e.js +0 -1
  573. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-0247c08c6f41b71e.js +0 -1
  574. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-0247c08c6f41b71e.js +0 -1
  575. package/.next-prod/static/chunks/app/api/review/[id]/route-0247c08c6f41b71e.js +0 -1
  576. package/.next-prod/static/chunks/app/api/review/identify/route-0247c08c6f41b71e.js +0 -1
  577. package/.next-prod/static/chunks/app/api/review/order/route-0247c08c6f41b71e.js +0 -1
  578. package/.next-prod/static/chunks/app/api/review/route-0247c08c6f41b71e.js +0 -1
  579. package/.next-prod/static/chunks/app/api/review/share-info/route-0247c08c6f41b71e.js +0 -1
  580. package/.next-prod/static/chunks/app/api/review/users/route-0247c08c6f41b71e.js +0 -1
  581. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-0247c08c6f41b71e.js +0 -1
  582. package/.next-prod/static/chunks/app/api/services/config/route-0247c08c6f41b71e.js +0 -1
  583. package/.next-prod/static/chunks/app/api/services/scripts/route-0247c08c6f41b71e.js +0 -1
  584. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-0247c08c6f41b71e.js +0 -1
  585. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-0247c08c6f41b71e.js +0 -1
  586. package/.next-prod/static/chunks/app/api/session-by-path/route-0247c08c6f41b71e.js +0 -1
  587. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-0247c08c6f41b71e.js +0 -1
  588. package/.next-prod/static/chunks/app/api/sessions/projects/route-0247c08c6f41b71e.js +0 -1
  589. package/.next-prod/static/chunks/app/api/sessions/route-0247c08c6f41b71e.js +0 -1
  590. package/.next-prod/static/chunks/app/api/settings/route-0247c08c6f41b71e.js +0 -1
  591. package/.next-prod/static/chunks/app/api/skills/[id]/route-0247c08c6f41b71e.js +0 -1
  592. package/.next-prod/static/chunks/app/api/skills/content/route-0247c08c6f41b71e.js +0 -1
  593. package/.next-prod/static/chunks/app/api/skills/route-0247c08c6f41b71e.js +0 -1
  594. package/.next-prod/static/chunks/app/api/terminal/aliases/route-0247c08c6f41b71e.js +0 -1
  595. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-0247c08c6f41b71e.js +0 -1
  596. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-0247c08c6f41b71e.js +0 -1
  597. package/.next-prod/static/chunks/app/api/terminal/env/route-0247c08c6f41b71e.js +0 -1
  598. package/.next-prod/static/chunks/app/api/terminal/history/route-0247c08c6f41b71e.js +0 -1
  599. package/.next-prod/static/chunks/app/api/version/route-0247c08c6f41b71e.js +0 -1
  600. package/.next-prod/static/chunks/app/manifest.webmanifest/route-0247c08c6f41b71e.js +0 -1
  601. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-0247c08c6f41b71e.js +0 -1
  602. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-0247c08c6f41b71e.js +0 -1
  603. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-0247c08c6f41b71e.js +0 -1
  604. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-0247c08c6f41b71e.js +0 -1
  605. package/.next-prod/static/css/863166ef8887021b.css +0 -1
  606. /package/.next-prod/static/{-btylnafgKD-DMe4UTayG → cTq1mDm5D_oZLiumFG6di}/_ssgManifest.js +0 -0
@@ -0,0 +1,87 @@
1
+ // File: /home/runner/work/cockpit/cockpit/src/app/m/page.tsx
2
+ import * as entry from '../../../../src/app/m/page.js'
3
+ import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../src/app/m/page.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ default: Function
16
+ config?: {}
17
+ generateStaticParams?: Function
18
+ unstable_instant?: InstantConfigForTypeCheckInternal
19
+ unstable_dynamicStaleTime?: number
20
+ revalidate?: RevalidateRange<TEntry> | false
21
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
22
+ dynamicParams?: boolean
23
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
24
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
25
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
26
+ maxDuration?: number
27
+
28
+ metadata?: any
29
+ generateMetadata?: Function
30
+ viewport?: any
31
+ generateViewport?: Function
32
+
33
+ }, TEntry, ''>>()
34
+
35
+
36
+ // Check the prop type of the entry function
37
+ checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
38
+
39
+ // Check the arguments and return type of the generateMetadata function
40
+ if ('generateMetadata' in entry) {
41
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
42
+ checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
43
+ }
44
+
45
+ // Check the arguments and return type of the generateViewport function
46
+ if ('generateViewport' in entry) {
47
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
48
+ checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
49
+ }
50
+
51
+ // Check the arguments and return type of the generateStaticParams function
52
+ if ('generateStaticParams' in entry) {
53
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
54
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
55
+ }
56
+
57
+ export interface PageProps {
58
+ params?: Promise<SegmentParams>
59
+ searchParams?: Promise<any>
60
+ }
61
+ export interface LayoutProps {
62
+ children?: React.ReactNode
63
+
64
+ params?: Promise<SegmentParams>
65
+ }
66
+
67
+ // =============
68
+ // Utility types
69
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
70
+
71
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
72
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
73
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
74
+
75
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
76
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
77
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
78
+
79
+
80
+
81
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
82
+
83
+ // https://github.com/sindresorhus/type-fest
84
+ type Numeric = number | bigint
85
+ type Zero = 0 | 0n
86
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
87
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -1,8 +1,8 @@
1
1
  // This file is generated automatically by Next.js
2
2
  // Do not edit this file manually
3
3
 
4
- type AppRoutes = "/" | "/project" | "/review/[id]"
5
- type AppRouteHandlerRoutes = "/api/agent/test" | "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/deepseek" | "/api/chat/kimi" | "/api/chat/ollama" | "/api/chat/pty-input" | "/api/claude-stats" | "/api/commands" | "/api/comments" | "/api/db/columns" | "/api/db/connect" | "/api/db/disconnect" | "/api/db/export" | "/api/db/query" | "/api/db/schemas" | "/api/dev/spans" | "/api/extension/version" | "/api/file" | "/api/files/blame" | "/api/files/clipboard" | "/api/files/copy" | "/api/files/delete" | "/api/files/expanded" | "/api/files/index" | "/api/files/init" | "/api/files/paste" | "/api/files/read" | "/api/files/readdir" | "/api/files/recent" | "/api/files/save" | "/api/files/search" | "/api/files/stat" | "/api/files/text" | "/api/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/api/git/current-branch" | "/api/git/diff" | "/api/git/discard" | "/api/git/stage" | "/api/git/status" | "/api/git/unstage" | "/api/git/worktree" | "/api/global-state" | "/api/jupyter/load" | "/api/jupyter/save" | "/api/jupyter/shutdown" | "/api/lsp/definition" | "/api/lsp/hover" | "/api/lsp/references" | "/api/lsp/status" | "/api/lsp/warmup" | "/api/mysql/columns" | "/api/mysql/connect" | "/api/mysql/disconnect" | "/api/mysql/export" | "/api/mysql/query" | "/api/mysql/schemas" | "/api/neo4j/connect" | "/api/neo4j/disconnect" | "/api/neo4j/query" | "/api/neo4j/schema" | "/api/note" | "/api/ollama/models" | "/api/ollama/start" | "/api/open-cursor" | "/api/open-vscode" | "/api/pick-folder" | "/api/pinned-sessions" | "/api/project-settings" | "/api/project-state" | "/api/projectGraph/affected" | "/api/projectGraph/callees" | "/api/projectGraph/callers" | "/api/projectGraph/coedit" | "/api/projectGraph/context" | "/api/projectGraph/file" | "/api/projectGraph/file-functions" | "/api/projectGraph/impact" | "/api/projectGraph/related" | "/api/projectGraph/risk" | "/api/projectGraph/search" | "/api/projects" | "/api/redis/command" | "/api/redis/connect" | "/api/redis/delete" | "/api/redis/disconnect" | "/api/redis/get" | "/api/redis/keys" | "/api/redis/set" | "/api/review" | "/api/review/[id]" | "/api/review/[id]/comments" | "/api/review/[id]/replies" | "/api/review/identify" | "/api/review/order" | "/api/review/share-info" | "/api/review/users" | "/api/scheduled-tasks" | "/api/services/config" | "/api/services/scripts" | "/api/session-by-path" | "/api/session/[sessionId]/fork" | "/api/session/[sessionId]/history" | "/api/sessions" | "/api/sessions/projects" | "/api/sessions/projects/[encodedPath]" | "/api/settings" | "/api/skills" | "/api/skills/[id]" | "/api/skills/content" | "/api/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
4
+ type AppRoutes = "/" | "/m" | "/project" | "/review/[id]"
5
+ type AppRouteHandlerRoutes = "/api/agent/test" | "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/deepseek" | "/api/chat/kimi" | "/api/chat/ollama" | "/api/chat/pty-input" | "/api/chat/stop" | "/api/claude-stats" | "/api/commands" | "/api/comments" | "/api/db/columns" | "/api/db/connect" | "/api/db/disconnect" | "/api/db/export" | "/api/db/query" | "/api/db/schemas" | "/api/dev/spans" | "/api/extension/version" | "/api/file" | "/api/files/blame" | "/api/files/clipboard" | "/api/files/copy" | "/api/files/delete" | "/api/files/expanded" | "/api/files/index" | "/api/files/init" | "/api/files/paste" | "/api/files/read" | "/api/files/readdir" | "/api/files/recent" | "/api/files/save" | "/api/files/search" | "/api/files/stat" | "/api/files/text" | "/api/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/api/git/current-branch" | "/api/git/diff" | "/api/git/discard" | "/api/git/stage" | "/api/git/status" | "/api/git/unstage" | "/api/git/worktree" | "/api/global-state" | "/api/jupyter/load" | "/api/jupyter/save" | "/api/jupyter/shutdown" | "/api/lsp/definition" | "/api/lsp/hover" | "/api/lsp/references" | "/api/lsp/status" | "/api/lsp/warmup" | "/api/mysql/columns" | "/api/mysql/connect" | "/api/mysql/disconnect" | "/api/mysql/export" | "/api/mysql/query" | "/api/mysql/schemas" | "/api/neo4j/connect" | "/api/neo4j/disconnect" | "/api/neo4j/query" | "/api/neo4j/schema" | "/api/note" | "/api/ollama/models" | "/api/ollama/start" | "/api/open-cursor" | "/api/open-vscode" | "/api/pick-folder" | "/api/pinned-sessions" | "/api/project-settings" | "/api/project-state" | "/api/projectGraph/affected" | "/api/projectGraph/callees" | "/api/projectGraph/callers" | "/api/projectGraph/coedit" | "/api/projectGraph/context" | "/api/projectGraph/file" | "/api/projectGraph/file-functions" | "/api/projectGraph/impact" | "/api/projectGraph/related" | "/api/projectGraph/risk" | "/api/projectGraph/search" | "/api/projects" | "/api/push/public-key" | "/api/push/subscribe" | "/api/push/unsubscribe" | "/api/redis/command" | "/api/redis/connect" | "/api/redis/delete" | "/api/redis/disconnect" | "/api/redis/get" | "/api/redis/keys" | "/api/redis/set" | "/api/review" | "/api/review/[id]" | "/api/review/[id]/comments" | "/api/review/[id]/replies" | "/api/review/identify" | "/api/review/order" | "/api/review/share-info" | "/api/review/users" | "/api/scheduled-tasks" | "/api/services/config" | "/api/services/scripts" | "/api/session-by-path" | "/api/session/[sessionId]/fork" | "/api/session/[sessionId]/history" | "/api/sessions" | "/api/sessions/projects" | "/api/sessions/projects/[encodedPath]" | "/api/settings" | "/api/skills" | "/api/skills/[id]" | "/api/skills/content" | "/api/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -20,6 +20,7 @@ interface ParamMap {
20
20
  "/api/chat/kimi": {}
21
21
  "/api/chat/ollama": {}
22
22
  "/api/chat/pty-input": {}
23
+ "/api/chat/stop": {}
23
24
  "/api/claude-stats": {}
24
25
  "/api/commands": {}
25
26
  "/api/comments": {}
@@ -98,6 +99,9 @@ interface ParamMap {
98
99
  "/api/projectGraph/risk": {}
99
100
  "/api/projectGraph/search": {}
100
101
  "/api/projects": {}
102
+ "/api/push/public-key": {}
103
+ "/api/push/subscribe": {}
104
+ "/api/push/unsubscribe": {}
101
105
  "/api/redis/command": {}
102
106
  "/api/redis/connect": {}
103
107
  "/api/redis/delete": {}
@@ -132,6 +136,7 @@ interface ParamMap {
132
136
  "/api/terminal/env": {}
133
137
  "/api/terminal/history": {}
134
138
  "/api/version": {}
139
+ "/m": {}
135
140
  "/project": {}
136
141
  "/review/[id]": { "id": string; }
137
142
  }
@@ -47,6 +47,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
47
47
  }
48
48
 
49
49
 
50
+ // Validate ../../src/app/m/page.tsx
51
+ {
52
+ type __IsExpected<Specific extends AppPageConfig<"/m">> = Specific
53
+ const handler = {} as typeof import("../../src/app/m/page.js")
54
+ type __Check = __IsExpected<typeof handler>
55
+ // @ts-ignore
56
+ type __Unused = __Check
57
+ }
58
+
50
59
  // Validate ../../src/app/page.tsx
51
60
  {
52
61
  type __IsExpected<Specific extends AppPageConfig<"/">> = Specific
@@ -146,6 +155,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
146
155
  type __Unused = __Check
147
156
  }
148
157
 
158
+ // Validate ../../src/app/api/chat/stop/route.ts
159
+ {
160
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/chat/stop">> = Specific
161
+ const handler = {} as typeof import("../../src/app/api/chat/stop/route.js")
162
+ type __Check = __IsExpected<typeof handler>
163
+ // @ts-ignore
164
+ type __Unused = __Check
165
+ }
166
+
149
167
  // Validate ../../src/app/api/claude-stats/route.ts
150
168
  {
151
169
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/claude-stats">> = Specific
@@ -848,6 +866,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
848
866
  type __Unused = __Check
849
867
  }
850
868
 
869
+ // Validate ../../src/app/api/push/public-key/route.ts
870
+ {
871
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/public-key">> = Specific
872
+ const handler = {} as typeof import("../../src/app/api/push/public-key/route.js")
873
+ type __Check = __IsExpected<typeof handler>
874
+ // @ts-ignore
875
+ type __Unused = __Check
876
+ }
877
+
878
+ // Validate ../../src/app/api/push/subscribe/route.ts
879
+ {
880
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/subscribe">> = Specific
881
+ const handler = {} as typeof import("../../src/app/api/push/subscribe/route.js")
882
+ type __Check = __IsExpected<typeof handler>
883
+ // @ts-ignore
884
+ type __Unused = __Check
885
+ }
886
+
887
+ // Validate ../../src/app/api/push/unsubscribe/route.ts
888
+ {
889
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/unsubscribe">> = Specific
890
+ const handler = {} as typeof import("../../src/app/api/push/unsubscribe/route.js")
891
+ type __Check = __IsExpected<typeof handler>
892
+ // @ts-ignore
893
+ type __Unused = __Check
894
+ }
895
+
851
896
  // Validate ../../src/app/api/redis/command/route.ts
852
897
  {
853
898
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/redis/command">> = Specific
@@ -28685,6 +28685,7 @@ var COCKPIT_DIR = join4(HOME_DIR, ".cockpit");
28685
28685
  var COCKPIT_PROJECTS_DIR = join4(COCKPIT_DIR, "projects");
28686
28686
  var GLOBAL_STATE_FILE = join4(COCKPIT_DIR, "state.json");
28687
28687
  var PINNED_SESSIONS_FILE = join4(COCKPIT_DIR, "pinned-sessions.json");
28688
+ var PUSH_SUBSCRIPTIONS_FILE = join4(COCKPIT_DIR, "push-subscriptions.json");
28688
28689
  var NOTE_FILE = join4(COCKPIT_DIR, "note.md");
28689
28690
  var SCHEDULED_TASKS_FILE = join4(COCKPIT_DIR, "scheduled-tasks.json");
28690
28691
  var SETTINGS_FILE = join4(COCKPIT_DIR, "settings.json");
@@ -29902,10 +29903,11 @@ export {
29902
29903
  runCypherWithDriver,
29903
29904
  serializeValue,
29904
29905
  GLOBAL_STATE_FILE,
29906
+ PUSH_SUBSCRIPTIONS_FILE,
29905
29907
  SCHEDULED_TASKS_FILE,
29908
+ SETTINGS_FILE,
29906
29909
  REVIEW_DIR,
29907
29910
  REVIEW_SIGNAL_FILE,
29908
- CLAUDE2_DIR,
29909
29911
  getTerminalHistoryPath,
29910
29912
  getTerminalOutputPath,
29911
29913
  getBubbleOrderPath,
@@ -13,7 +13,7 @@ import {
13
13
  getTerminalOutputPath,
14
14
  readJsonFile,
15
15
  writeJsonFile
16
- } from "./chunk-6BFKFQG5.mjs";
16
+ } from "./chunk-5BOGGUGT.mjs";
17
17
 
18
18
  // packages/feature/console/src/server/plugins/browser/BrowserBridge.ts
19
19
  import { WebSocket } from "ws";
@@ -1,5 +1,7 @@
1
1
  import {
2
2
  GLOBAL_STATE_FILE,
3
+ PUSH_SUBSCRIPTIONS_FILE,
4
+ SETTINGS_FILE,
3
5
  findCodexSessionPath,
4
6
  findKimiSessionPath,
5
7
  getClaude2SessionPath,
@@ -8,11 +10,98 @@ import {
8
10
  readJsonFile,
9
11
  withFileLock,
10
12
  writeJsonFile
11
- } from "./chunk-6BFKFQG5.mjs";
13
+ } from "./chunk-5BOGGUGT.mjs";
12
14
 
13
15
  // packages/feature/agent/src/server/state/globalState.ts
14
16
  import { createReadStream, existsSync } from "fs";
15
17
  import { createInterface } from "readline";
18
+ import { basename } from "path";
19
+
20
+ // packages/feature/agent/src/server/push/push.ts
21
+ import webpush from "web-push";
22
+ var configured = null;
23
+ var DEFAULT_SUBJECT = "https://github.com/Surething-io/cockpit";
24
+ function isValidVapidSubject(sub) {
25
+ if (!sub || sub.includes("localhost")) return false;
26
+ if (sub.startsWith("https://")) return true;
27
+ const m = /^mailto:[^\s@]+@([^\s@]+)$/.exec(sub);
28
+ return !!m && m[1].includes(".");
29
+ }
30
+ async function getVapid() {
31
+ if (configured) return configured;
32
+ const vapid = await withFileLock(SETTINGS_FILE, async () => {
33
+ const settings = await readJsonFile(SETTINGS_FILE, {});
34
+ if (settings.push?.publicKey && settings.push?.privateKey) {
35
+ const subject = isValidVapidSubject(settings.push.subject) ? settings.push.subject : DEFAULT_SUBJECT;
36
+ if (subject !== settings.push.subject) {
37
+ await writeJsonFile(SETTINGS_FILE, {
38
+ ...settings,
39
+ push: { ...settings.push, subject }
40
+ });
41
+ }
42
+ return {
43
+ publicKey: settings.push.publicKey,
44
+ privateKey: settings.push.privateKey,
45
+ subject
46
+ };
47
+ }
48
+ const keys = webpush.generateVAPIDKeys();
49
+ const push = {
50
+ publicKey: keys.publicKey,
51
+ privateKey: keys.privateKey,
52
+ subject: DEFAULT_SUBJECT
53
+ };
54
+ await writeJsonFile(SETTINGS_FILE, { ...settings, push });
55
+ return push;
56
+ });
57
+ webpush.setVapidDetails(vapid.subject, vapid.publicKey, vapid.privateKey);
58
+ configured = vapid;
59
+ return vapid;
60
+ }
61
+ async function sendPushNotification(payload) {
62
+ try {
63
+ await getVapid();
64
+ } catch {
65
+ return { sent: 0, pruned: 0 };
66
+ }
67
+ const store = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
68
+ if (store.subscriptions.length === 0) return { sent: 0, pruned: 0 };
69
+ const body = JSON.stringify(payload);
70
+ const dead = [];
71
+ let sent = 0;
72
+ await Promise.all(
73
+ store.subscriptions.map(async (sub) => {
74
+ try {
75
+ await webpush.sendNotification(sub, body);
76
+ sent++;
77
+ } catch (e) {
78
+ const err = e;
79
+ const code = err?.statusCode;
80
+ if (code === 404 || code === 410) {
81
+ dead.push(sub.endpoint);
82
+ } else {
83
+ let host = sub.endpoint;
84
+ try {
85
+ host = new URL(sub.endpoint).host;
86
+ } catch {
87
+ }
88
+ console.error(`[push] send failed (${code ?? "?"}) to ${host}: ${err?.body || err?.message || "unknown"}`);
89
+ }
90
+ }
91
+ })
92
+ );
93
+ if (dead.length) {
94
+ await withFileLock(PUSH_SUBSCRIPTIONS_FILE, async () => {
95
+ const cur = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
96
+ await writeJsonFile(PUSH_SUBSCRIPTIONS_FILE, {
97
+ subscriptions: cur.subscriptions.filter((s) => !dead.includes(s.endpoint))
98
+ });
99
+ });
100
+ }
101
+ return { sent, pruned: dead.length };
102
+ }
103
+
104
+ // packages/feature/agent/src/server/state/globalState.ts
16
105
  var MAX_SESSIONS = 15;
17
106
  var MAX_TEXT_LEN = 50;
18
107
  function truncate(s) {
@@ -54,33 +143,20 @@ async function updateGlobalState(cwd, sessionId, status, title, lastUserMessage)
54
143
  state.sessions.sort((a, b) => b.lastActive - a.lastActive);
55
144
  state.sessions = state.sessions.slice(0, MAX_SESSIONS);
56
145
  await writeJsonFile(GLOBAL_STATE_FILE, state);
146
+ if (status === "unread" && existing?.status !== "unread") {
147
+ void (async () => {
148
+ const fresh = await getLastUserMessage(cwd, sessionId).catch(() => void 0);
149
+ const last = fresh || newSession.lastUserMessage;
150
+ await sendPushNotification({
151
+ title: basename(cwd) || "Cockpit",
152
+ body: truncate(last) || newSession.title || "",
153
+ data: { cwd, sessionId }
154
+ });
155
+ })().catch(() => {
156
+ });
157
+ }
57
158
  });
58
159
  }
59
- async function getSessionTitle(cwd, sessionId) {
60
- const claudePath = getClaudeSessionPath(cwd, sessionId);
61
- if (existsSync(claudePath)) {
62
- return getClaudeStyleTitle(claudePath);
63
- }
64
- const claude2Path = getClaude2SessionPath(cwd, sessionId);
65
- if (existsSync(claude2Path)) {
66
- return getClaudeStyleTitle(claude2Path);
67
- }
68
- const ollamaPath = getOllamaSessionPath(cwd, sessionId);
69
- if (existsSync(ollamaPath)) {
70
- return getClaudeStyleTitle(ollamaPath);
71
- }
72
- const codexPath = findCodexSessionPath(sessionId);
73
- if (codexPath && existsSync(codexPath)) {
74
- const title = await getCodexTitle(codexPath);
75
- return title || "Untitled Session";
76
- }
77
- const kimiPath = findKimiSessionPath(sessionId);
78
- if (kimiPath && existsSync(kimiPath)) {
79
- const title = await getKimiTitle(kimiPath);
80
- return title || "Untitled Session";
81
- }
82
- return "Untitled Session";
83
- }
84
160
  async function collectUserMessages(cwd, sessionId) {
85
161
  const claudePath = getClaudeSessionPath(cwd, sessionId);
86
162
  if (existsSync(claudePath)) {
@@ -104,6 +180,10 @@ async function collectUserMessages(cwd, sessionId) {
104
180
  }
105
181
  return [];
106
182
  }
183
+ async function getLastUserMessage(cwd, sessionId) {
184
+ const messages = await collectUserMessages(cwd, sessionId);
185
+ return messages[messages.length - 1];
186
+ }
107
187
  var SUMMARY_THRESHOLD = 10;
108
188
  var SUMMARY_HEAD = 5;
109
189
  var SUMMARY_TAIL = 5;
@@ -131,38 +211,6 @@ function isValidUserMessage(text) {
131
211
  if (!text.trim()) return false;
132
212
  return true;
133
213
  }
134
- async function getClaudeStyleTitle(filePath) {
135
- try {
136
- const fileStream = createReadStream(filePath);
137
- const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
138
- let summary = "";
139
- const userMessages = [];
140
- for await (const line of rl) {
141
- if (!line.trim()) continue;
142
- try {
143
- const entry = JSON.parse(line);
144
- if (entry.type === "summary" && entry.summary) {
145
- summary = entry.summary;
146
- }
147
- if (entry.type === "user") {
148
- const message = entry.message;
149
- if (!message?.content) continue;
150
- if (typeof message.content === "string") {
151
- userMessages.push(message.content);
152
- } else if (Array.isArray(message.content)) {
153
- for (const block of message.content) {
154
- if (block.type === "text" && block.text) userMessages.push(block.text);
155
- }
156
- }
157
- }
158
- } catch {
159
- }
160
- }
161
- return generateTitle(summary, userMessages);
162
- } catch {
163
- return "Untitled Session";
164
- }
165
- }
166
214
  async function getClaudeStyleUserMessages(filePath) {
167
215
  const messages = [];
168
216
  try {
@@ -225,30 +273,6 @@ async function getCodexUserMessages(filePath) {
225
273
  }
226
274
  return messages;
227
275
  }
228
- async function getCodexTitle(filePath) {
229
- try {
230
- const fileStream = createReadStream(filePath);
231
- const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
232
- for await (const line of rl) {
233
- if (!line.trim()) continue;
234
- let entry;
235
- try {
236
- entry = JSON.parse(line);
237
- } catch {
238
- continue;
239
- }
240
- if (entry.type !== "response_item") continue;
241
- const payload = entry.payload;
242
- if (!payload || payload.type !== "message" || payload.role !== "user") continue;
243
- const text = payload.content?.filter((c) => c.type === "input_text" && c.text).map((c) => c.text).join("") || "";
244
- if (!text || text.startsWith("<") || text.startsWith("#")) continue;
245
- return text.slice(0, 80);
246
- }
247
- return void 0;
248
- } catch {
249
- return void 0;
250
- }
251
- }
252
276
  async function getKimiUserMessages(filePath) {
253
277
  const messages = [];
254
278
  try {
@@ -276,51 +300,94 @@ async function getKimiUserMessages(filePath) {
276
300
  }
277
301
  return messages;
278
302
  }
279
- async function getKimiTitle(filePath) {
280
- try {
281
- const fileStream = createReadStream(filePath);
282
- const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
283
- for await (const line of rl) {
284
- if (!line.trim()) continue;
285
- let entry;
303
+
304
+ // packages/feature/agent/src/server/sessionRunHub.ts
305
+ var GRACE_MS = 6e4;
306
+ var g = globalThis;
307
+ var registry = g.__cockpitRunRegistry ?? (g.__cockpitRunRegistry = /* @__PURE__ */ new Map());
308
+ var listeners = g.__cockpitRunListeners ?? (g.__cockpitRunListeners = /* @__PURE__ */ new Map());
309
+ var seqByKey = g.__cockpitRunSeqByKey ?? (g.__cockpitRunSeqByKey = /* @__PURE__ */ new Map());
310
+ function bumpSeq(state) {
311
+ state.seq += 1;
312
+ for (const k of state.keys) seqByKey.set(k, state.seq);
313
+ return state.seq;
314
+ }
315
+ function fanout(state, ev) {
316
+ for (const k of state.keys) {
317
+ const ls = listeners.get(k);
318
+ if (ls) for (const cb of ls) {
286
319
  try {
287
- entry = JSON.parse(line);
320
+ cb(ev);
288
321
  } catch {
289
- continue;
290
322
  }
291
- if (entry.role !== "user") continue;
292
- const text = typeof entry.content === "string" ? entry.content : Array.isArray(entry.content) ? entry.content.filter((c) => (c.type === "input_text" || c.type === "text") && c.text).map((c) => c.text).join("") : "";
293
- if (!text || text.startsWith("<system") || text.startsWith("<environment") || text.startsWith("# AGENTS.md") || text.startsWith("<permissions")) {
294
- continue;
295
- }
296
- return text.slice(0, 80);
297
323
  }
298
- return void 0;
324
+ }
325
+ }
326
+ function appendRun(key, message) {
327
+ const r = registry.get(key);
328
+ if (!r) return;
329
+ if (r.status !== "running") return;
330
+ bumpSeq(r);
331
+ r.events.push(message);
332
+ r.updatedAt = Date.now();
333
+ fanout(r, { seq: r.seq, message });
334
+ }
335
+ function markRunIdle(key, status = "idle") {
336
+ const r = registry.get(key);
337
+ if (!r) return;
338
+ const wasRunning = r.status === "running";
339
+ if (!wasRunning) {
340
+ if (r.status === "idle" && status === "error") r.status = "error";
341
+ return;
342
+ }
343
+ r.status = status;
344
+ r.updatedAt = Date.now();
345
+ {
346
+ bumpSeq(r);
347
+ fanout(r, { seq: r.seq, message: { type: "run-ended", status } });
348
+ }
349
+ if (r.evictTimer) clearTimeout(r.evictTimer);
350
+ r.evictTimer = setTimeout(() => {
351
+ for (const k of r.keys) registry.delete(k);
352
+ }, GRACE_MS);
353
+ }
354
+ function getRunSnapshot(key) {
355
+ const r = registry.get(key);
356
+ if (!r) return null;
357
+ return { status: r.status, seq: r.seq, events: r.events.slice() };
358
+ }
359
+ function isRunActive(key) {
360
+ return registry.get(key)?.status === "running";
361
+ }
362
+ function requestStop(key) {
363
+ const r = registry.get(key);
364
+ if (!r) return false;
365
+ try {
366
+ r.abort?.();
299
367
  } catch {
300
- return void 0;
301
368
  }
369
+ appendRun(key, { type: "result", subtype: "stopped" });
370
+ markRunIdle(key, "idle");
371
+ return true;
302
372
  }
303
- function generateTitle(summary, userMessages) {
304
- if (summary) return summary;
305
- let commandName = "";
306
- for (const msg of userMessages) {
307
- const filtered = filterCommandTags(msg);
308
- if (!filtered) continue;
309
- if (filtered.startsWith("/") && !commandName) {
310
- commandName = filtered;
311
- continue;
312
- }
313
- if (commandName) {
314
- return `${commandName} ${filtered}`;
315
- }
316
- return filtered;
373
+ function addRunListener(key, cb) {
374
+ let s = listeners.get(key);
375
+ if (!s) {
376
+ s = /* @__PURE__ */ new Set();
377
+ listeners.set(key, s);
317
378
  }
318
- if (commandName) return commandName;
319
- return "Untitled Session";
379
+ s.add(cb);
380
+ return () => {
381
+ const set = listeners.get(key);
382
+ if (set && set.delete(cb) && set.size === 0) listeners.delete(key);
383
+ };
320
384
  }
321
385
 
322
386
  export {
323
387
  updateGlobalState,
324
- getSessionTitle,
325
- getSessionPreview
388
+ getSessionPreview,
389
+ getRunSnapshot,
390
+ isRunActive,
391
+ requestStop,
392
+ addRunListener
326
393
  };
package/dist/httpApi.mjs CHANGED
@@ -21,10 +21,10 @@ import {
21
21
  unregisterBrowser,
22
22
  unregisterTerminal,
23
23
  writeStdinToCommand
24
- } from "./chunk-ICB7IS3A.mjs";
24
+ } from "./chunk-BM3ZNL5S.mjs";
25
25
  import {
26
26
  getTerminalHistoryPath
27
- } from "./chunk-6BFKFQG5.mjs";
27
+ } from "./chunk-5BOGGUGT.mjs";
28
28
  import "./chunk-7P6ASYW6.mjs";
29
29
 
30
30
  // src/lib/httpApi.ts