@surething/cockpit 1.0.204 → 1.0.206

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 (325) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +23 -23
  3. package/.next-prod/build-manifest.json +3 -3
  4. package/.next-prod/prerender-manifest.json +3 -3
  5. package/.next-prod/react-loadable-manifest.json +3 -3
  6. package/.next-prod/required-server-files.js +14 -1
  7. package/.next-prod/required-server-files.json +14 -1
  8. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next-prod/server/app/_global-error.html +1 -1
  11. package/.next-prod/server/app/_global-error.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next-prod/server/app/_not-found/page.js +2 -2
  19. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next-prod/server/app/_not-found.html +2 -2
  22. package/.next-prod/server/app/_not-found.rsc +4 -3
  23. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -3
  24. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +4 -3
  26. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  29. package/.next-prod/server/app/api/bash/route.js +1 -1
  30. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/chat/codex/route.js +3 -3
  32. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  33. package/.next-prod/server/app/api/chat/deepseek/route.js +6 -6
  34. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  35. package/.next-prod/server/app/api/chat/kimi/route.js +3 -3
  36. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  37. package/.next-prod/server/app/api/chat/ollama/route.js +18 -18
  38. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/chat/route.js +3 -3
  40. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  41. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  42. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/commands/route.js +1 -1
  44. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/comments/route.js +1 -1
  46. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/db/columns/route.js +4 -4
  48. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  50. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  52. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/db/export/route.js +1 -1
  54. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/db/query/route.js +1 -1
  56. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/db/schemas/route.js +2 -2
  58. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  60. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/file/route.js +1 -1
  62. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  64. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  66. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  68. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  70. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  72. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/files/index/route.js +1 -1
  74. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/files/init/route.js +1 -1
  76. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  78. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/files/read/route.js +1 -1
  80. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  82. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  84. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/files/save/route.js +1 -1
  86. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/files/search/route.js +1 -1
  88. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/files/stat/route.js +1 -1
  90. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/files/text/route.js +1 -1
  92. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  94. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  96. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  98. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  100. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  102. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  104. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  106. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/git/status/route.js +1 -1
  108. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  110. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  112. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/global-state/route.js +1 -1
  114. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  116. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  118. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  120. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  122. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  123. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  124. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  125. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  126. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  128. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  130. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/mysql/columns/route.js +4 -4
  132. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  134. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  136. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  138. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  140. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  141. package/.next-prod/server/app/api/mysql/schemas/route.js +2 -2
  142. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  143. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  144. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  146. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  147. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  148. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  150. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/note/route.js +1 -1
  152. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  154. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  156. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  158. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  160. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  162. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  164. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  165. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  166. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  167. package/.next-prod/server/app/api/project-state/route.js +1 -1
  168. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
  170. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  171. package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
  172. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  173. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  174. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  175. package/.next-prod/server/app/api/projects/route.js +1 -1
  176. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  177. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  178. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  179. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  180. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  182. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  183. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  184. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  185. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  186. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  187. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  188. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  189. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  190. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  191. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  192. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  193. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  194. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  195. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  196. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  197. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  198. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  199. package/.next-prod/server/app/api/review/order/route.js +1 -1
  200. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  201. package/.next-prod/server/app/api/review/route.js +1 -1
  202. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  203. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  204. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  205. package/.next-prod/server/app/api/review/users/route.js +1 -1
  206. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  207. package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
  208. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  209. package/.next-prod/server/app/api/services/config/route.js +1 -1
  210. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  211. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  212. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  213. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  214. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  215. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  216. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  217. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  218. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  219. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  220. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  221. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  222. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  223. package/.next-prod/server/app/api/sessions/route.js +1 -1
  224. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  225. package/.next-prod/server/app/api/settings/route.js +1 -1
  226. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  227. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  228. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  229. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  230. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  231. package/.next-prod/server/app/api/skills/route.js +1 -1
  232. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  233. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  234. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  235. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  236. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  237. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  238. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  239. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  240. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  241. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  242. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  243. package/.next-prod/server/app/api/version/route.js +1 -1
  244. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  245. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  246. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  247. package/.next-prod/server/app/page.js +2 -99
  248. package/.next-prod/server/app/page.js.nft.json +1 -1
  249. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  250. package/.next-prod/server/app/project/page.js +2 -30
  251. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  252. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  253. package/.next-prod/server/app/review/[id]/page.js +2 -2
  254. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  255. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  256. package/.next-prod/server/app-paths-manifest.json +23 -23
  257. package/.next-prod/server/chunks/240.js +1 -0
  258. package/.next-prod/server/chunks/5466.js +1 -0
  259. package/.next-prod/server/chunks/554.js +101 -0
  260. package/.next-prod/server/chunks/{4272.js → 6007.js} +2 -2
  261. package/.next-prod/server/chunks/7264.js +5 -0
  262. package/.next-prod/server/chunks/8750.js +1 -0
  263. package/.next-prod/server/chunks/{4490.js → 8764.js} +1 -1
  264. package/.next-prod/server/chunks/900.js +1 -0
  265. package/.next-prod/server/chunks/9255.js +1 -0
  266. package/.next-prod/server/chunks/9658.js +59 -0
  267. package/.next-prod/server/chunks/987.js +139 -0
  268. package/.next-prod/server/functions-config-manifest.json +1 -26
  269. package/.next-prod/server/middleware-build-manifest.js +1 -1
  270. package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
  271. package/.next-prod/server/pages/404.html +2 -2
  272. package/.next-prod/server/pages/500.html +1 -1
  273. package/.next-prod/server/server-reference-manifest.json +1 -1
  274. package/.next-prod/static/chunks/{700.8d53bb1a328c3f97.js → 1959.b9473117faf354bf.js} +1 -1
  275. package/.next-prod/static/chunks/5204-c8293184aa55cdd5.js +23 -0
  276. package/.next-prod/static/chunks/5660-9ffe0abe675caac1.js +29 -0
  277. package/.next-prod/static/chunks/6028-1d6ced1439a3f01f.js +1 -0
  278. package/.next-prod/static/chunks/6345-6b34b0528ff833a1.js +14 -0
  279. package/.next-prod/static/chunks/app/layout-421143dba2c69478.js +1 -0
  280. package/.next-prod/static/chunks/app/page-db32ebfdf1ac9174.js +1 -0
  281. package/.next-prod/static/chunks/app/project/page-db32ebfdf1ac9174.js +1 -0
  282. package/.next-prod/static/chunks/app/review/[id]/page-05cd4cb51babd64c.js +1 -0
  283. package/.next-prod/static/chunks/webpack-bb0c02e3a9602d78.js +1 -0
  284. package/.next-prod/static/css/a7974d62fe853925.css +1 -0
  285. package/.next-prod/trace +12 -12
  286. package/.next-prod/trace-build +1 -1
  287. package/dist/{chunk-5NL2LMKP.mjs → chunk-HIRLDMCH.mjs} +24 -140
  288. package/dist/chunk-RSHKDWJM.mjs +136 -0
  289. package/dist/chunk-VCZEGP64.mjs +984 -0
  290. package/dist/scheduledTasks.mjs +6 -4
  291. package/dist/server-K6XWP7DX.mjs +69 -0
  292. package/dist/wsServer.mjs +60 -482
  293. package/next.config.mjs +21 -0
  294. package/package.json +15 -17
  295. package/server.mjs +1 -1
  296. package/.next-prod/server/chunks/2338.js +0 -1
  297. package/.next-prod/server/chunks/3353.js +0 -1
  298. package/.next-prod/server/chunks/3863.js +0 -1
  299. package/.next-prod/server/chunks/4098.js +0 -1
  300. package/.next-prod/server/chunks/4732.js +0 -1
  301. package/.next-prod/server/chunks/4793.js +0 -1
  302. package/.next-prod/server/chunks/5147.js +0 -1
  303. package/.next-prod/server/chunks/5394.js +0 -1
  304. package/.next-prod/server/chunks/6043.js +0 -4
  305. package/.next-prod/server/chunks/7051.js +0 -1
  306. package/.next-prod/server/chunks/7514.js +0 -31
  307. package/.next-prod/server/chunks/8491.js +0 -5
  308. package/.next-prod/server/chunks/9298.js +0 -139
  309. package/.next-prod/static/chunks/1705-906aa28943dbc391.js +0 -4
  310. package/.next-prod/static/chunks/3530-5b5e2c59811ae478.js +0 -14
  311. package/.next-prod/static/chunks/3579-51f0ad7204c67e22.js +0 -1
  312. package/.next-prod/static/chunks/3643-fe2ac2f1accd0649.js +0 -1
  313. package/.next-prod/static/chunks/3743-1f5d8cfd9d92ad97.js +0 -4
  314. package/.next-prod/static/chunks/4186-2bbbcdf03b3c15f5.js +0 -17
  315. package/.next-prod/static/chunks/9062-8d92cbc176f388a0.js +0 -1
  316. package/.next-prod/static/chunks/9114-0d2717c9c2752d0f.js +0 -1
  317. package/.next-prod/static/chunks/app/layout-e091cf70aaec617b.js +0 -1
  318. package/.next-prod/static/chunks/app/page-c9a30c88afc0a0c5.js +0 -1
  319. package/.next-prod/static/chunks/app/project/page-4881270bf8e49c61.js +0 -29
  320. package/.next-prod/static/chunks/app/review/[id]/page-f8bb4748e9a94a0f.js +0 -1
  321. package/.next-prod/static/chunks/webpack-c6cffb10a569677a.js +0 -1
  322. package/.next-prod/static/css/874f987341759310.css +0 -1
  323. package/dist/JupyterKernelManager-VBKKSRVJ.mjs +0 -269
  324. /package/.next-prod/static/{8uae4HftphIngPubLspsR → VAwjvIwxO_lfKwd6A4ptI}/_buildManifest.js +0 -0
  325. /package/.next-prod/static/{8uae4HftphIngPubLspsR → VAwjvIwxO_lfKwd6A4ptI}/_ssgManifest.js +0 -0
@@ -1,269 +0,0 @@
1
- // src/lib/bubbles/jupyter/JupyterKernelManager.ts
2
- import { spawn } from "child_process";
3
- import { join } from "path";
4
- import { homedir } from "os";
5
- import { existsSync } from "fs";
6
- import { createInterface } from "readline";
7
- var GLOBAL_KEY = /* @__PURE__ */ Symbol.for("jupyter_kernel_manager");
8
- var IDLE_TIMEOUT = 10 * 60 * 1e3;
9
- var IDLE_CHECK_INTERVAL = 60 * 1e3;
10
- var JupyterKernelManager = class {
11
- constructor() {
12
- this.instances = /* @__PURE__ */ new Map();
13
- this.idleTimer = null;
14
- process.on("exit", () => {
15
- this.shutdownAll();
16
- });
17
- }
18
- /**
19
- * Find python3 executable
20
- */
21
- findPython() {
22
- return "python3";
23
- }
24
- /**
25
- * Resolve jupyter_bridge.py path.
26
- * Production: ~/.cockpit/kernels/jupyter_bridge.py (copied by postinstall)
27
- * Dev: COCKPIT_ROOT/kernels/jupyter_bridge.py or legacy src path
28
- */
29
- resolveBridgePath() {
30
- const installedPath = join(homedir(), ".cockpit", "kernels", "jupyter_bridge.py");
31
- if (existsSync(installedPath)) {
32
- return installedPath;
33
- }
34
- const root = process.env.COCKPIT_ROOT;
35
- if (root) {
36
- const devPath = join(root, "kernels", "jupyter_bridge.py");
37
- if (existsSync(devPath)) {
38
- return devPath;
39
- }
40
- }
41
- return join(__dirname, "jupyter_bridge.py");
42
- }
43
- /**
44
- * Get or create a kernel for a bubble
45
- */
46
- async getOrCreate(bubbleId, cwd) {
47
- const existing = this.instances.get(bubbleId);
48
- if (existing) {
49
- existing.lastUsedAt = Date.now();
50
- await existing.readyPromise;
51
- return existing;
52
- }
53
- const python = this.findPython();
54
- const bridgePath = this.resolveBridgePath();
55
- const bridge = spawn(python, ["-u", bridgePath], {
56
- cwd,
57
- env: {
58
- ...process.env,
59
- JUPYTER_CWD: cwd,
60
- PYTHONUNBUFFERED: "1"
61
- },
62
- stdio: ["pipe", "pipe", "pipe"]
63
- });
64
- const readline = createInterface({ input: bridge.stdout });
65
- let resolveReady;
66
- let rejectReady;
67
- const readyPromise = new Promise((resolve, reject) => {
68
- resolveReady = resolve;
69
- rejectReady = reject;
70
- });
71
- const instance = {
72
- bubbleId,
73
- cwd,
74
- bridge,
75
- readline,
76
- ready: false,
77
- readyPromise,
78
- lastUsedAt: Date.now(),
79
- outputListeners: /* @__PURE__ */ new Set()
80
- };
81
- this.instances.set(bubbleId, instance);
82
- readline.on("line", (line) => {
83
- let msg;
84
- try {
85
- msg = JSON.parse(line);
86
- } catch {
87
- return;
88
- }
89
- const type = msg.type;
90
- if (type === "ready") {
91
- instance.ready = true;
92
- resolveReady();
93
- } else if (type === "error") {
94
- const errorMsg = msg.message;
95
- instance.errorMessage = errorMsg;
96
- console.error(`[jupyter-kernel] ${bubbleId}: ${errorMsg}`);
97
- if (!instance.ready) {
98
- rejectReady(new Error(errorMsg));
99
- }
100
- const output = {
101
- msg_id: "",
102
- msg_type: "kernel_error",
103
- content: { message: errorMsg }
104
- };
105
- for (const listener of instance.outputListeners) {
106
- listener(output);
107
- }
108
- } else if (msg.msg_id !== void 0) {
109
- const output = {
110
- msg_id: msg.msg_id,
111
- msg_type: msg.msg_type,
112
- content: msg.content
113
- };
114
- for (const listener of instance.outputListeners) {
115
- listener(output);
116
- }
117
- }
118
- });
119
- bridge.stderr?.on("data", (data) => {
120
- const text = data.toString().trim();
121
- if (text) {
122
- console.error(`[jupyter-kernel] ${bubbleId} stderr: ${text}`);
123
- }
124
- });
125
- bridge.on("exit", (code) => {
126
- console.log(`[jupyter-kernel] ${bubbleId} bridge exited with code ${code}`);
127
- readline.close();
128
- this.instances.delete(bubbleId);
129
- if (!instance.ready) {
130
- rejectReady(new Error(`Bridge exited with code ${code}`));
131
- }
132
- const output = {
133
- msg_id: "",
134
- msg_type: "kernel_died",
135
- content: { exit_code: code }
136
- };
137
- for (const listener of instance.outputListeners) {
138
- listener(output);
139
- }
140
- });
141
- bridge.on("error", (err) => {
142
- console.error(`[jupyter-kernel] ${bubbleId} spawn error:`, err.message);
143
- instance.errorMessage = err.message.includes("ENOENT") ? "Python not found. Ensure python3 is installed and in PATH." : err.message;
144
- if (!instance.ready) {
145
- rejectReady(new Error(instance.errorMessage));
146
- }
147
- });
148
- this.startIdleTimer();
149
- try {
150
- await readyPromise;
151
- } catch {
152
- }
153
- return instance;
154
- }
155
- /**
156
- * Execute code in a kernel
157
- */
158
- async execute(bubbleId, code, msgId, cwd) {
159
- let instance = this.instances.get(bubbleId);
160
- if (!instance) {
161
- if (!cwd) throw new Error("Kernel not found and no cwd provided");
162
- instance = await this.getOrCreate(bubbleId, cwd);
163
- }
164
- if (!instance.ready) {
165
- throw new Error(instance.errorMessage || "Kernel not ready");
166
- }
167
- instance.lastUsedAt = Date.now();
168
- const cmd = JSON.stringify({ cmd: "execute", msg_id: msgId, code });
169
- instance.bridge.stdin.write(cmd + "\n");
170
- }
171
- /**
172
- * Interrupt the kernel
173
- */
174
- async interrupt(bubbleId) {
175
- const instance = this.instances.get(bubbleId);
176
- if (!instance || !instance.ready) return;
177
- const cmd = JSON.stringify({ cmd: "interrupt" });
178
- instance.bridge.stdin.write(cmd + "\n");
179
- }
180
- /**
181
- * Shutdown a kernel
182
- */
183
- async shutdown(bubbleId) {
184
- const instance = this.instances.get(bubbleId);
185
- if (!instance) return;
186
- try {
187
- if (instance.bridge.stdin?.writable) {
188
- instance.bridge.stdin.write(JSON.stringify({ cmd: "shutdown" }) + "\n");
189
- }
190
- } catch {
191
- }
192
- setTimeout(() => {
193
- try {
194
- instance.bridge.kill("SIGKILL");
195
- } catch {
196
- }
197
- }, 3e3);
198
- instance.readline.close();
199
- this.instances.delete(bubbleId);
200
- if (this.instances.size === 0) {
201
- this.stopIdleTimer();
202
- }
203
- }
204
- /**
205
- * Shutdown all kernels
206
- */
207
- shutdownAll() {
208
- for (const [id] of this.instances) {
209
- this.shutdown(id);
210
- }
211
- this.stopIdleTimer();
212
- }
213
- /**
214
- * Subscribe to kernel output messages
215
- */
216
- addOutputListener(bubbleId, listener) {
217
- const instance = this.instances.get(bubbleId);
218
- if (!instance) return () => {
219
- };
220
- instance.outputListeners.add(listener);
221
- return () => {
222
- instance.outputListeners.delete(listener);
223
- };
224
- }
225
- /**
226
- * Check if a kernel exists for a bubble
227
- */
228
- has(bubbleId) {
229
- return this.instances.has(bubbleId);
230
- }
231
- /**
232
- * Get kernel error message if any
233
- */
234
- getError(bubbleId) {
235
- return this.instances.get(bubbleId)?.errorMessage;
236
- }
237
- // ============================================
238
- // Idle timeout
239
- // ============================================
240
- startIdleTimer() {
241
- if (this.idleTimer) return;
242
- this.idleTimer = setInterval(() => {
243
- const now = Date.now();
244
- for (const [id, instance] of this.instances) {
245
- if (now - instance.lastUsedAt > IDLE_TIMEOUT) {
246
- console.log(`[jupyter-kernel] idle timeout: ${id}`);
247
- this.shutdown(id);
248
- }
249
- }
250
- if (this.instances.size === 0) {
251
- this.stopIdleTimer();
252
- }
253
- }, IDLE_CHECK_INTERVAL);
254
- if (typeof this.idleTimer.unref === "function") {
255
- this.idleTimer.unref();
256
- }
257
- }
258
- stopIdleTimer() {
259
- if (this.idleTimer) {
260
- clearInterval(this.idleTimer);
261
- this.idleTimer = null;
262
- }
263
- }
264
- };
265
- var g = globalThis;
266
- var kernelManager = g[GLOBAL_KEY] ?? (g[GLOBAL_KEY] = new JupyterKernelManager());
267
- export {
268
- kernelManager
269
- };