@surething/cockpit 1.0.187 → 1.0.189

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 (536) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +21 -18
  3. package/.next-prod/build-manifest.json +2 -2
  4. package/.next-prod/prerender-manifest.json +3 -3
  5. package/.next-prod/routes-manifest.json +20 -0
  6. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next-prod/server/app/_global-error.html +2 -2
  9. package/.next-prod/server/app/_global-error.rsc +1 -1
  10. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next-prod/server/app/_not-found.html +2 -2
  19. package/.next-prod/server/app/_not-found.rsc +3 -3
  20. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  21. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  23. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  27. package/.next-prod/server/app/api/bash/route_client-reference-manifest.js +1 -1
  28. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  29. package/.next-prod/server/app/api/chat/codex/route_client-reference-manifest.js +1 -1
  30. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/chat/kimi/route_client-reference-manifest.js +1 -1
  32. package/.next-prod/server/app/api/chat/ollama/route.js +26 -8
  33. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  34. package/.next-prod/server/app/api/chat/ollama/route_client-reference-manifest.js +1 -1
  35. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/chat/route_client-reference-manifest.js +1 -1
  37. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  38. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/claude-stats/route_client-reference-manifest.js +1 -1
  40. package/.next-prod/server/app/api/commands/route.js +1 -1
  41. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/commands/route_client-reference-manifest.js +1 -1
  43. package/.next-prod/server/app/api/comments/route.js +1 -1
  44. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/comments/route_client-reference-manifest.js +1 -1
  46. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/db/columns/route_client-reference-manifest.js +1 -1
  48. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/db/connect/route_client-reference-manifest.js +1 -1
  50. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/db/disconnect/route_client-reference-manifest.js +1 -1
  52. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/db/export/route_client-reference-manifest.js +1 -1
  54. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/db/query/route_client-reference-manifest.js +1 -1
  56. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/db/schemas/route_client-reference-manifest.js +1 -1
  58. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/extension/version/route_client-reference-manifest.js +1 -1
  60. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/file/route_client-reference-manifest.js +1 -1
  62. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/files/blame/route_client-reference-manifest.js +1 -1
  64. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/files/clipboard/route_client-reference-manifest.js +1 -1
  66. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/files/copy/route_client-reference-manifest.js +1 -1
  68. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/files/delete/route_client-reference-manifest.js +1 -1
  70. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  71. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  72. package/.next-prod/server/app/api/files/expanded/route_client-reference-manifest.js +1 -1
  73. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  74. package/.next-prod/server/app/api/files/index/route_client-reference-manifest.js +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/init/route_client-reference-manifest.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/paste/route_client-reference-manifest.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/read/route_client-reference-manifest.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/readdir/route_client-reference-manifest.js +1 -1
  84. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  85. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  86. package/.next-prod/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
  87. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/files/save/route_client-reference-manifest.js +1 -1
  89. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  90. package/.next-prod/server/app/api/files/search/route_client-reference-manifest.js +1 -1
  91. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  92. package/.next-prod/server/app/api/git/branch-diff/route_client-reference-manifest.js +1 -1
  93. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/git/branches/route_client-reference-manifest.js +1 -1
  95. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  96. package/.next-prod/server/app/api/git/commit-diff/route_client-reference-manifest.js +1 -1
  97. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  98. package/.next-prod/server/app/api/git/commits/route_client-reference-manifest.js +1 -1
  99. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  101. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  102. package/.next-prod/server/app/api/git/discard/route_client-reference-manifest.js +1 -1
  103. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  104. package/.next-prod/server/app/api/git/stage/route_client-reference-manifest.js +1 -1
  105. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  107. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  108. package/.next-prod/server/app/api/git/unstage/route_client-reference-manifest.js +1 -1
  109. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  110. package/.next-prod/server/app/api/git/worktree/route_client-reference-manifest.js +1 -1
  111. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/global-state/route_client-reference-manifest.js +1 -1
  113. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  114. package/.next-prod/server/app/api/jupyter/load/route_client-reference-manifest.js +1 -1
  115. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  116. package/.next-prod/server/app/api/jupyter/save/route_client-reference-manifest.js +1 -1
  117. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/jupyter/shutdown/route_client-reference-manifest.js +1 -1
  119. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  120. package/.next-prod/server/app/api/lsp/definition/route_client-reference-manifest.js +1 -1
  121. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  122. package/.next-prod/server/app/api/lsp/hover/route_client-reference-manifest.js +1 -1
  123. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  124. package/.next-prod/server/app/api/lsp/references/route_client-reference-manifest.js +1 -1
  125. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  126. package/.next-prod/server/app/api/lsp/status/route_client-reference-manifest.js +1 -1
  127. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  128. package/.next-prod/server/app/api/lsp/warmup/route_client-reference-manifest.js +1 -1
  129. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/mysql/columns/route_client-reference-manifest.js +1 -1
  131. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  132. package/.next-prod/server/app/api/mysql/connect/route_client-reference-manifest.js +1 -1
  133. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  134. package/.next-prod/server/app/api/mysql/disconnect/route_client-reference-manifest.js +1 -1
  135. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/mysql/export/route_client-reference-manifest.js +1 -1
  137. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  138. package/.next-prod/server/app/api/mysql/query/route_client-reference-manifest.js +1 -1
  139. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  140. package/.next-prod/server/app/api/mysql/schemas/route_client-reference-manifest.js +1 -1
  141. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  142. package/.next-prod/server/app/api/neo4j/connect/route_client-reference-manifest.js +1 -1
  143. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  144. package/.next-prod/server/app/api/neo4j/disconnect/route_client-reference-manifest.js +1 -1
  145. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  146. package/.next-prod/server/app/api/neo4j/query/route_client-reference-manifest.js +1 -1
  147. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/neo4j/schema/route_client-reference-manifest.js +1 -1
  149. package/.next-prod/server/app/api/note/route.js +1 -1
  150. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/note/route_client-reference-manifest.js +1 -1
  152. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  154. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/ollama/start/route_client-reference-manifest.js +1 -1
  156. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/open-cursor/route_client-reference-manifest.js +1 -1
  158. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/open-vscode/route_client-reference-manifest.js +1 -1
  160. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/pick-folder/route_client-reference-manifest.js +1 -1
  162. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  163. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  164. package/.next-prod/server/app/api/pinned-sessions/route_client-reference-manifest.js +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-settings/route_client-reference-manifest.js +1 -1
  168. package/.next-prod/server/app/api/project-state/route.js +1 -1
  169. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  170. package/.next-prod/server/app/api/project-state/route_client-reference-manifest.js +1 -1
  171. package/.next-prod/server/app/api/projects/route.js +1 -1
  172. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  173. package/.next-prod/server/app/api/projects/route_client-reference-manifest.js +1 -1
  174. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  175. package/.next-prod/server/app/api/redis/command/route_client-reference-manifest.js +1 -1
  176. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  177. package/.next-prod/server/app/api/redis/connect/route_client-reference-manifest.js +1 -1
  178. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  179. package/.next-prod/server/app/api/redis/delete/route_client-reference-manifest.js +1 -1
  180. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/redis/disconnect/route_client-reference-manifest.js +1 -1
  182. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  183. package/.next-prod/server/app/api/redis/get/route_client-reference-manifest.js +1 -1
  184. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  185. package/.next-prod/server/app/api/redis/keys/route_client-reference-manifest.js +1 -1
  186. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  187. package/.next-prod/server/app/api/redis/set/route_client-reference-manifest.js +1 -1
  188. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  189. package/.next-prod/server/app/api/review/[id]/comments/route_client-reference-manifest.js +1 -1
  190. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  191. package/.next-prod/server/app/api/review/[id]/replies/route_client-reference-manifest.js +1 -1
  192. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  193. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  194. package/.next-prod/server/app/api/review/[id]/route_client-reference-manifest.js +1 -1
  195. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  196. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  197. package/.next-prod/server/app/api/review/identify/route_client-reference-manifest.js +1 -1
  198. package/.next-prod/server/app/api/review/order/route.js +1 -1
  199. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  200. package/.next-prod/server/app/api/review/order/route_client-reference-manifest.js +1 -1
  201. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  202. package/.next-prod/server/app/api/review/route_client-reference-manifest.js +1 -1
  203. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  204. package/.next-prod/server/app/api/review/share-info/route_client-reference-manifest.js +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/review/users/route_client-reference-manifest.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/scheduled-tasks/route_client-reference-manifest.js +1 -1
  210. package/.next-prod/server/app/api/services/config/route.js +1 -1
  211. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  212. package/.next-prod/server/app/api/services/config/route_client-reference-manifest.js +1 -1
  213. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  214. package/.next-prod/server/app/api/services/scripts/route_client-reference-manifest.js +1 -1
  215. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  216. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  217. package/.next-prod/server/app/api/session/[sessionId]/fork/route_client-reference-manifest.js +1 -1
  218. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  219. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  220. package/.next-prod/server/app/api/session/[sessionId]/history/route_client-reference-manifest.js +1 -1
  221. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  222. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  223. package/.next-prod/server/app/api/session-by-path/route_client-reference-manifest.js +1 -1
  224. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  225. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  226. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route_client-reference-manifest.js +1 -1
  227. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  228. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  229. package/.next-prod/server/app/api/sessions/projects/route_client-reference-manifest.js +1 -1
  230. package/.next-prod/server/app/api/sessions/route.js +1 -1
  231. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  232. package/.next-prod/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  233. package/.next-prod/server/app/api/settings/route.js +1 -1
  234. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  235. package/.next-prod/server/app/api/settings/route_client-reference-manifest.js +1 -1
  236. package/.next-prod/server/app/api/skills/[id]/route.js +1 -0
  237. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -0
  238. package/.next-prod/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -0
  239. package/.next-prod/server/app/api/skills/content/route.js +1 -0
  240. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -0
  241. package/.next-prod/server/app/api/skills/content/route_client-reference-manifest.js +1 -0
  242. package/.next-prod/server/app/api/skills/route.js +1 -0
  243. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -0
  244. package/.next-prod/server/app/api/skills/route_client-reference-manifest.js +1 -0
  245. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  246. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  247. package/.next-prod/server/app/api/terminal/aliases/route_client-reference-manifest.js +1 -1
  248. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  249. package/.next-prod/server/app/api/terminal/autocomplete/route_client-reference-manifest.js +1 -1
  250. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  251. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  252. package/.next-prod/server/app/api/terminal/bubble-order/route_client-reference-manifest.js +1 -1
  253. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  254. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  255. package/.next-prod/server/app/api/terminal/env/route_client-reference-manifest.js +1 -1
  256. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  257. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  258. package/.next-prod/server/app/api/terminal/history/route_client-reference-manifest.js +1 -1
  259. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  260. package/.next-prod/server/app/api/version/route_client-reference-manifest.js +1 -1
  261. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  262. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  263. package/.next-prod/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  264. package/.next-prod/server/app/page.js +13 -13
  265. package/.next-prod/server/app/page.js.nft.json +1 -1
  266. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  267. package/.next-prod/server/app/project/page.js +8 -7
  268. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  269. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  270. package/.next-prod/server/app/review/[id]/page.js +1 -1
  271. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  272. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  273. package/.next-prod/server/app-paths-manifest.json +21 -18
  274. package/.next-prod/server/chunks/1661.js +1 -0
  275. package/.next-prod/server/chunks/2325.js +1 -1
  276. package/.next-prod/server/chunks/2338.js +1 -0
  277. package/.next-prod/server/chunks/4098.js +1 -1
  278. package/.next-prod/server/chunks/459.js +1 -0
  279. package/.next-prod/server/chunks/5394.js +1 -1
  280. package/.next-prod/server/chunks/6043.js +4 -0
  281. package/.next-prod/server/chunks/7122.js +1 -0
  282. package/.next-prod/server/chunks/7514.js +1 -1
  283. package/.next-prod/server/functions-config-manifest.json +3 -0
  284. package/.next-prod/server/pages/404.html +2 -2
  285. package/.next-prod/server/pages/500.html +2 -2
  286. package/.next-prod/server/server-reference-manifest.json +1 -1
  287. package/.next-prod/static/KErTlLLQlubS82IizAx-5/_buildManifest.js +1 -0
  288. package/.next-prod/static/chunks/3530-49f50405e2b2a8c2.js +14 -0
  289. package/.next-prod/static/chunks/3743-66d6d2ef6629c733.js +4 -0
  290. package/.next-prod/static/chunks/6108-df36466c7d900315.js +1 -0
  291. package/.next-prod/static/chunks/6148-ceb1b58ea7be6767.js +1 -0
  292. package/.next-prod/static/chunks/6878-b27072ccf7fd4eba.js +1 -0
  293. package/.next-prod/static/chunks/9062-a330afa1af7f133e.js +1 -0
  294. package/.next-prod/static/chunks/app/_global-error/page-f626fdfbc87b7a2c.js +1 -0
  295. package/.next-prod/static/chunks/app/api/bash/route-f626fdfbc87b7a2c.js +1 -0
  296. package/.next-prod/static/chunks/app/api/chat/codex/route-f626fdfbc87b7a2c.js +1 -0
  297. package/.next-prod/static/chunks/app/api/chat/kimi/route-f626fdfbc87b7a2c.js +1 -0
  298. package/.next-prod/static/chunks/app/api/chat/ollama/route-f626fdfbc87b7a2c.js +1 -0
  299. package/.next-prod/static/chunks/app/api/chat/route-f626fdfbc87b7a2c.js +1 -0
  300. package/.next-prod/static/chunks/app/api/claude-stats/route-f626fdfbc87b7a2c.js +1 -0
  301. package/.next-prod/static/chunks/app/api/commands/route-f626fdfbc87b7a2c.js +1 -0
  302. package/.next-prod/static/chunks/app/api/comments/route-f626fdfbc87b7a2c.js +1 -0
  303. package/.next-prod/static/chunks/app/api/db/columns/route-f626fdfbc87b7a2c.js +1 -0
  304. package/.next-prod/static/chunks/app/api/db/connect/route-f626fdfbc87b7a2c.js +1 -0
  305. package/.next-prod/static/chunks/app/api/db/disconnect/route-f626fdfbc87b7a2c.js +1 -0
  306. package/.next-prod/static/chunks/app/api/db/export/route-f626fdfbc87b7a2c.js +1 -0
  307. package/.next-prod/static/chunks/app/api/db/query/route-f626fdfbc87b7a2c.js +1 -0
  308. package/.next-prod/static/chunks/app/api/db/schemas/route-f626fdfbc87b7a2c.js +1 -0
  309. package/.next-prod/static/chunks/app/api/extension/version/route-f626fdfbc87b7a2c.js +1 -0
  310. package/.next-prod/static/chunks/app/api/file/route-f626fdfbc87b7a2c.js +1 -0
  311. package/.next-prod/static/chunks/app/api/files/blame/route-f626fdfbc87b7a2c.js +1 -0
  312. package/.next-prod/static/chunks/app/api/files/clipboard/route-f626fdfbc87b7a2c.js +1 -0
  313. package/.next-prod/static/chunks/app/api/files/copy/route-f626fdfbc87b7a2c.js +1 -0
  314. package/.next-prod/static/chunks/app/api/files/delete/route-f626fdfbc87b7a2c.js +1 -0
  315. package/.next-prod/static/chunks/app/api/files/expanded/route-f626fdfbc87b7a2c.js +1 -0
  316. package/.next-prod/static/chunks/app/api/files/index/route-f626fdfbc87b7a2c.js +1 -0
  317. package/.next-prod/static/chunks/app/api/files/init/route-f626fdfbc87b7a2c.js +1 -0
  318. package/.next-prod/static/chunks/app/api/files/paste/route-f626fdfbc87b7a2c.js +1 -0
  319. package/.next-prod/static/chunks/app/api/files/read/route-f626fdfbc87b7a2c.js +1 -0
  320. package/.next-prod/static/chunks/app/api/files/readdir/route-f626fdfbc87b7a2c.js +1 -0
  321. package/.next-prod/static/chunks/app/api/files/recent/route-f626fdfbc87b7a2c.js +1 -0
  322. package/.next-prod/static/chunks/app/api/files/save/route-f626fdfbc87b7a2c.js +1 -0
  323. package/.next-prod/static/chunks/app/api/files/search/route-f626fdfbc87b7a2c.js +1 -0
  324. package/.next-prod/static/chunks/app/api/git/branch-diff/route-f626fdfbc87b7a2c.js +1 -0
  325. package/.next-prod/static/chunks/app/api/git/branches/route-f626fdfbc87b7a2c.js +1 -0
  326. package/.next-prod/static/chunks/app/api/git/commit-diff/route-f626fdfbc87b7a2c.js +1 -0
  327. package/.next-prod/static/chunks/app/api/git/commits/route-f626fdfbc87b7a2c.js +1 -0
  328. package/.next-prod/static/chunks/app/api/git/diff/route-f626fdfbc87b7a2c.js +1 -0
  329. package/.next-prod/static/chunks/app/api/git/discard/route-f626fdfbc87b7a2c.js +1 -0
  330. package/.next-prod/static/chunks/app/api/git/stage/route-f626fdfbc87b7a2c.js +1 -0
  331. package/.next-prod/static/chunks/app/api/git/status/route-f626fdfbc87b7a2c.js +1 -0
  332. package/.next-prod/static/chunks/app/api/git/unstage/route-f626fdfbc87b7a2c.js +1 -0
  333. package/.next-prod/static/chunks/app/api/git/worktree/route-f626fdfbc87b7a2c.js +1 -0
  334. package/.next-prod/static/chunks/app/api/global-state/route-f626fdfbc87b7a2c.js +1 -0
  335. package/.next-prod/static/chunks/app/api/jupyter/load/route-f626fdfbc87b7a2c.js +1 -0
  336. package/.next-prod/static/chunks/app/api/jupyter/save/route-f626fdfbc87b7a2c.js +1 -0
  337. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-f626fdfbc87b7a2c.js +1 -0
  338. package/.next-prod/static/chunks/app/api/lsp/definition/route-f626fdfbc87b7a2c.js +1 -0
  339. package/.next-prod/static/chunks/app/api/lsp/hover/route-f626fdfbc87b7a2c.js +1 -0
  340. package/.next-prod/static/chunks/app/api/lsp/references/route-f626fdfbc87b7a2c.js +1 -0
  341. package/.next-prod/static/chunks/app/api/lsp/status/route-f626fdfbc87b7a2c.js +1 -0
  342. package/.next-prod/static/chunks/app/api/lsp/warmup/route-f626fdfbc87b7a2c.js +1 -0
  343. package/.next-prod/static/chunks/app/api/mysql/columns/route-f626fdfbc87b7a2c.js +1 -0
  344. package/.next-prod/static/chunks/app/api/mysql/connect/route-f626fdfbc87b7a2c.js +1 -0
  345. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-f626fdfbc87b7a2c.js +1 -0
  346. package/.next-prod/static/chunks/app/api/mysql/export/route-f626fdfbc87b7a2c.js +1 -0
  347. package/.next-prod/static/chunks/app/api/mysql/query/route-f626fdfbc87b7a2c.js +1 -0
  348. package/.next-prod/static/chunks/app/api/mysql/schemas/route-f626fdfbc87b7a2c.js +1 -0
  349. package/.next-prod/static/chunks/app/api/neo4j/connect/route-f626fdfbc87b7a2c.js +1 -0
  350. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-f626fdfbc87b7a2c.js +1 -0
  351. package/.next-prod/static/chunks/app/api/neo4j/query/route-f626fdfbc87b7a2c.js +1 -0
  352. package/.next-prod/static/chunks/app/api/neo4j/schema/route-f626fdfbc87b7a2c.js +1 -0
  353. package/.next-prod/static/chunks/app/api/note/route-f626fdfbc87b7a2c.js +1 -0
  354. package/.next-prod/static/chunks/app/api/ollama/models/route-f626fdfbc87b7a2c.js +1 -0
  355. package/.next-prod/static/chunks/app/api/ollama/start/route-f626fdfbc87b7a2c.js +1 -0
  356. package/.next-prod/static/chunks/app/api/open-cursor/route-f626fdfbc87b7a2c.js +1 -0
  357. package/.next-prod/static/chunks/app/api/open-vscode/route-f626fdfbc87b7a2c.js +1 -0
  358. package/.next-prod/static/chunks/app/api/pick-folder/route-f626fdfbc87b7a2c.js +1 -0
  359. package/.next-prod/static/chunks/app/api/pinned-sessions/route-f626fdfbc87b7a2c.js +1 -0
  360. package/.next-prod/static/chunks/app/api/project-settings/route-f626fdfbc87b7a2c.js +1 -0
  361. package/.next-prod/static/chunks/app/api/project-state/route-f626fdfbc87b7a2c.js +1 -0
  362. package/.next-prod/static/chunks/app/api/projects/route-f626fdfbc87b7a2c.js +1 -0
  363. package/.next-prod/static/chunks/app/api/redis/command/route-f626fdfbc87b7a2c.js +1 -0
  364. package/.next-prod/static/chunks/app/api/redis/connect/route-f626fdfbc87b7a2c.js +1 -0
  365. package/.next-prod/static/chunks/app/api/redis/delete/route-f626fdfbc87b7a2c.js +1 -0
  366. package/.next-prod/static/chunks/app/api/redis/disconnect/route-f626fdfbc87b7a2c.js +1 -0
  367. package/.next-prod/static/chunks/app/api/redis/get/route-f626fdfbc87b7a2c.js +1 -0
  368. package/.next-prod/static/chunks/app/api/redis/keys/route-f626fdfbc87b7a2c.js +1 -0
  369. package/.next-prod/static/chunks/app/api/redis/set/route-f626fdfbc87b7a2c.js +1 -0
  370. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-f626fdfbc87b7a2c.js +1 -0
  371. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-f626fdfbc87b7a2c.js +1 -0
  372. package/.next-prod/static/chunks/app/api/review/[id]/route-f626fdfbc87b7a2c.js +1 -0
  373. package/.next-prod/static/chunks/app/api/review/identify/route-f626fdfbc87b7a2c.js +1 -0
  374. package/.next-prod/static/chunks/app/api/review/order/route-f626fdfbc87b7a2c.js +1 -0
  375. package/.next-prod/static/chunks/app/api/review/route-f626fdfbc87b7a2c.js +1 -0
  376. package/.next-prod/static/chunks/app/api/review/share-info/route-f626fdfbc87b7a2c.js +1 -0
  377. package/.next-prod/static/chunks/app/api/review/users/route-f626fdfbc87b7a2c.js +1 -0
  378. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-f626fdfbc87b7a2c.js +1 -0
  379. package/.next-prod/static/chunks/app/api/services/config/route-f626fdfbc87b7a2c.js +1 -0
  380. package/.next-prod/static/chunks/app/api/services/scripts/route-f626fdfbc87b7a2c.js +1 -0
  381. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-f626fdfbc87b7a2c.js +1 -0
  382. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-f626fdfbc87b7a2c.js +1 -0
  383. package/.next-prod/static/chunks/app/api/session-by-path/route-f626fdfbc87b7a2c.js +1 -0
  384. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-f626fdfbc87b7a2c.js +1 -0
  385. package/.next-prod/static/chunks/app/api/sessions/projects/route-f626fdfbc87b7a2c.js +1 -0
  386. package/.next-prod/static/chunks/app/api/sessions/route-f626fdfbc87b7a2c.js +1 -0
  387. package/.next-prod/static/chunks/app/api/settings/route-f626fdfbc87b7a2c.js +1 -0
  388. package/.next-prod/static/chunks/app/api/skills/[id]/route-f626fdfbc87b7a2c.js +1 -0
  389. package/.next-prod/static/chunks/app/api/skills/content/route-f626fdfbc87b7a2c.js +1 -0
  390. package/.next-prod/static/chunks/app/api/skills/route-f626fdfbc87b7a2c.js +1 -0
  391. package/.next-prod/static/chunks/app/api/terminal/aliases/route-f626fdfbc87b7a2c.js +1 -0
  392. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-f626fdfbc87b7a2c.js +1 -0
  393. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-f626fdfbc87b7a2c.js +1 -0
  394. package/.next-prod/static/chunks/app/api/terminal/env/route-f626fdfbc87b7a2c.js +1 -0
  395. package/.next-prod/static/chunks/app/api/terminal/history/route-f626fdfbc87b7a2c.js +1 -0
  396. package/.next-prod/static/chunks/app/api/version/route-f626fdfbc87b7a2c.js +1 -0
  397. package/.next-prod/static/chunks/app/manifest.webmanifest/route-f626fdfbc87b7a2c.js +1 -0
  398. package/.next-prod/static/chunks/app/page-e0d663a97bc29595.js +1 -0
  399. package/.next-prod/static/chunks/app/project/page-ff9fb0aaf89c8457.js +29 -0
  400. package/.next-prod/static/chunks/app/review/[id]/{page-559260ff9227d0b4.js → page-be83af23e89a03f9.js} +1 -1
  401. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-f626fdfbc87b7a2c.js +1 -0
  402. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-f626fdfbc87b7a2c.js +1 -0
  403. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-f626fdfbc87b7a2c.js +1 -0
  404. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-f626fdfbc87b7a2c.js +1 -0
  405. package/.next-prod/static/css/75f39a8350e8177f.css +3 -0
  406. package/.next-prod/trace +13 -12
  407. package/.next-prod/trace-build +1 -1
  408. package/.next-prod/types/app/api/skills/[id]/route.ts +350 -0
  409. package/.next-prod/types/app/api/skills/content/route.ts +350 -0
  410. package/.next-prod/types/app/api/skills/route.ts +350 -0
  411. package/.next-prod/types/routes.d.ts +4 -1
  412. package/.next-prod/types/validator.ts +27 -0
  413. package/bin/cock-browser.mjs +65 -1
  414. package/chrome-extension/automation.js +36 -0
  415. package/chrome-extension/background.js +49 -2
  416. package/dist/{chunk-KLV3PBIZ.mjs → chunk-ZDTXJE6Z.mjs} +1 -0
  417. package/dist/scheduledTasks.mjs +1 -1
  418. package/dist/wsServer.mjs +1 -1
  419. package/package.json +1 -1
  420. package/.next-prod/server/chunks/4042.js +0 -1
  421. package/.next-prod/server/chunks/6062.js +0 -1
  422. package/.next-prod/server/chunks/7284.js +0 -1
  423. package/.next-prod/static/Avd2f2SegjGOElSYvrTlK/_buildManifest.js +0 -1
  424. package/.next-prod/static/chunks/1593-d845ec6e5c8de67e.js +0 -1
  425. package/.next-prod/static/chunks/2072-f08fabf0a6541d15.js +0 -4
  426. package/.next-prod/static/chunks/3530-6d8abfd0e950d439.js +0 -14
  427. package/.next-prod/static/chunks/5493-83d6a5ec42d6cbb3.js +0 -1
  428. package/.next-prod/static/chunks/app/_global-error/page-6f58f82d7dc6888f.js +0 -1
  429. package/.next-prod/static/chunks/app/api/bash/route-6f58f82d7dc6888f.js +0 -1
  430. package/.next-prod/static/chunks/app/api/chat/codex/route-6f58f82d7dc6888f.js +0 -1
  431. package/.next-prod/static/chunks/app/api/chat/kimi/route-6f58f82d7dc6888f.js +0 -1
  432. package/.next-prod/static/chunks/app/api/chat/ollama/route-6f58f82d7dc6888f.js +0 -1
  433. package/.next-prod/static/chunks/app/api/chat/route-6f58f82d7dc6888f.js +0 -1
  434. package/.next-prod/static/chunks/app/api/claude-stats/route-6f58f82d7dc6888f.js +0 -1
  435. package/.next-prod/static/chunks/app/api/commands/route-6f58f82d7dc6888f.js +0 -1
  436. package/.next-prod/static/chunks/app/api/comments/route-6f58f82d7dc6888f.js +0 -1
  437. package/.next-prod/static/chunks/app/api/db/columns/route-6f58f82d7dc6888f.js +0 -1
  438. package/.next-prod/static/chunks/app/api/db/connect/route-6f58f82d7dc6888f.js +0 -1
  439. package/.next-prod/static/chunks/app/api/db/disconnect/route-6f58f82d7dc6888f.js +0 -1
  440. package/.next-prod/static/chunks/app/api/db/export/route-6f58f82d7dc6888f.js +0 -1
  441. package/.next-prod/static/chunks/app/api/db/query/route-6f58f82d7dc6888f.js +0 -1
  442. package/.next-prod/static/chunks/app/api/db/schemas/route-6f58f82d7dc6888f.js +0 -1
  443. package/.next-prod/static/chunks/app/api/extension/version/route-6f58f82d7dc6888f.js +0 -1
  444. package/.next-prod/static/chunks/app/api/file/route-6f58f82d7dc6888f.js +0 -1
  445. package/.next-prod/static/chunks/app/api/files/blame/route-6f58f82d7dc6888f.js +0 -1
  446. package/.next-prod/static/chunks/app/api/files/clipboard/route-6f58f82d7dc6888f.js +0 -1
  447. package/.next-prod/static/chunks/app/api/files/copy/route-6f58f82d7dc6888f.js +0 -1
  448. package/.next-prod/static/chunks/app/api/files/delete/route-6f58f82d7dc6888f.js +0 -1
  449. package/.next-prod/static/chunks/app/api/files/expanded/route-6f58f82d7dc6888f.js +0 -1
  450. package/.next-prod/static/chunks/app/api/files/index/route-6f58f82d7dc6888f.js +0 -1
  451. package/.next-prod/static/chunks/app/api/files/init/route-6f58f82d7dc6888f.js +0 -1
  452. package/.next-prod/static/chunks/app/api/files/paste/route-6f58f82d7dc6888f.js +0 -1
  453. package/.next-prod/static/chunks/app/api/files/read/route-6f58f82d7dc6888f.js +0 -1
  454. package/.next-prod/static/chunks/app/api/files/readdir/route-6f58f82d7dc6888f.js +0 -1
  455. package/.next-prod/static/chunks/app/api/files/recent/route-6f58f82d7dc6888f.js +0 -1
  456. package/.next-prod/static/chunks/app/api/files/save/route-6f58f82d7dc6888f.js +0 -1
  457. package/.next-prod/static/chunks/app/api/files/search/route-6f58f82d7dc6888f.js +0 -1
  458. package/.next-prod/static/chunks/app/api/git/branch-diff/route-6f58f82d7dc6888f.js +0 -1
  459. package/.next-prod/static/chunks/app/api/git/branches/route-6f58f82d7dc6888f.js +0 -1
  460. package/.next-prod/static/chunks/app/api/git/commit-diff/route-6f58f82d7dc6888f.js +0 -1
  461. package/.next-prod/static/chunks/app/api/git/commits/route-6f58f82d7dc6888f.js +0 -1
  462. package/.next-prod/static/chunks/app/api/git/diff/route-6f58f82d7dc6888f.js +0 -1
  463. package/.next-prod/static/chunks/app/api/git/discard/route-6f58f82d7dc6888f.js +0 -1
  464. package/.next-prod/static/chunks/app/api/git/stage/route-6f58f82d7dc6888f.js +0 -1
  465. package/.next-prod/static/chunks/app/api/git/status/route-6f58f82d7dc6888f.js +0 -1
  466. package/.next-prod/static/chunks/app/api/git/unstage/route-6f58f82d7dc6888f.js +0 -1
  467. package/.next-prod/static/chunks/app/api/git/worktree/route-6f58f82d7dc6888f.js +0 -1
  468. package/.next-prod/static/chunks/app/api/global-state/route-6f58f82d7dc6888f.js +0 -1
  469. package/.next-prod/static/chunks/app/api/jupyter/load/route-6f58f82d7dc6888f.js +0 -1
  470. package/.next-prod/static/chunks/app/api/jupyter/save/route-6f58f82d7dc6888f.js +0 -1
  471. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-6f58f82d7dc6888f.js +0 -1
  472. package/.next-prod/static/chunks/app/api/lsp/definition/route-6f58f82d7dc6888f.js +0 -1
  473. package/.next-prod/static/chunks/app/api/lsp/hover/route-6f58f82d7dc6888f.js +0 -1
  474. package/.next-prod/static/chunks/app/api/lsp/references/route-6f58f82d7dc6888f.js +0 -1
  475. package/.next-prod/static/chunks/app/api/lsp/status/route-6f58f82d7dc6888f.js +0 -1
  476. package/.next-prod/static/chunks/app/api/lsp/warmup/route-6f58f82d7dc6888f.js +0 -1
  477. package/.next-prod/static/chunks/app/api/mysql/columns/route-6f58f82d7dc6888f.js +0 -1
  478. package/.next-prod/static/chunks/app/api/mysql/connect/route-6f58f82d7dc6888f.js +0 -1
  479. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-6f58f82d7dc6888f.js +0 -1
  480. package/.next-prod/static/chunks/app/api/mysql/export/route-6f58f82d7dc6888f.js +0 -1
  481. package/.next-prod/static/chunks/app/api/mysql/query/route-6f58f82d7dc6888f.js +0 -1
  482. package/.next-prod/static/chunks/app/api/mysql/schemas/route-6f58f82d7dc6888f.js +0 -1
  483. package/.next-prod/static/chunks/app/api/neo4j/connect/route-6f58f82d7dc6888f.js +0 -1
  484. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-6f58f82d7dc6888f.js +0 -1
  485. package/.next-prod/static/chunks/app/api/neo4j/query/route-6f58f82d7dc6888f.js +0 -1
  486. package/.next-prod/static/chunks/app/api/neo4j/schema/route-6f58f82d7dc6888f.js +0 -1
  487. package/.next-prod/static/chunks/app/api/note/route-6f58f82d7dc6888f.js +0 -1
  488. package/.next-prod/static/chunks/app/api/ollama/models/route-6f58f82d7dc6888f.js +0 -1
  489. package/.next-prod/static/chunks/app/api/ollama/start/route-6f58f82d7dc6888f.js +0 -1
  490. package/.next-prod/static/chunks/app/api/open-cursor/route-6f58f82d7dc6888f.js +0 -1
  491. package/.next-prod/static/chunks/app/api/open-vscode/route-6f58f82d7dc6888f.js +0 -1
  492. package/.next-prod/static/chunks/app/api/pick-folder/route-6f58f82d7dc6888f.js +0 -1
  493. package/.next-prod/static/chunks/app/api/pinned-sessions/route-6f58f82d7dc6888f.js +0 -1
  494. package/.next-prod/static/chunks/app/api/project-settings/route-6f58f82d7dc6888f.js +0 -1
  495. package/.next-prod/static/chunks/app/api/project-state/route-6f58f82d7dc6888f.js +0 -1
  496. package/.next-prod/static/chunks/app/api/projects/route-6f58f82d7dc6888f.js +0 -1
  497. package/.next-prod/static/chunks/app/api/redis/command/route-6f58f82d7dc6888f.js +0 -1
  498. package/.next-prod/static/chunks/app/api/redis/connect/route-6f58f82d7dc6888f.js +0 -1
  499. package/.next-prod/static/chunks/app/api/redis/delete/route-6f58f82d7dc6888f.js +0 -1
  500. package/.next-prod/static/chunks/app/api/redis/disconnect/route-6f58f82d7dc6888f.js +0 -1
  501. package/.next-prod/static/chunks/app/api/redis/get/route-6f58f82d7dc6888f.js +0 -1
  502. package/.next-prod/static/chunks/app/api/redis/keys/route-6f58f82d7dc6888f.js +0 -1
  503. package/.next-prod/static/chunks/app/api/redis/set/route-6f58f82d7dc6888f.js +0 -1
  504. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-6f58f82d7dc6888f.js +0 -1
  505. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-6f58f82d7dc6888f.js +0 -1
  506. package/.next-prod/static/chunks/app/api/review/[id]/route-6f58f82d7dc6888f.js +0 -1
  507. package/.next-prod/static/chunks/app/api/review/identify/route-6f58f82d7dc6888f.js +0 -1
  508. package/.next-prod/static/chunks/app/api/review/order/route-6f58f82d7dc6888f.js +0 -1
  509. package/.next-prod/static/chunks/app/api/review/route-6f58f82d7dc6888f.js +0 -1
  510. package/.next-prod/static/chunks/app/api/review/share-info/route-6f58f82d7dc6888f.js +0 -1
  511. package/.next-prod/static/chunks/app/api/review/users/route-6f58f82d7dc6888f.js +0 -1
  512. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-6f58f82d7dc6888f.js +0 -1
  513. package/.next-prod/static/chunks/app/api/services/config/route-6f58f82d7dc6888f.js +0 -1
  514. package/.next-prod/static/chunks/app/api/services/scripts/route-6f58f82d7dc6888f.js +0 -1
  515. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-6f58f82d7dc6888f.js +0 -1
  516. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-6f58f82d7dc6888f.js +0 -1
  517. package/.next-prod/static/chunks/app/api/session-by-path/route-6f58f82d7dc6888f.js +0 -1
  518. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-6f58f82d7dc6888f.js +0 -1
  519. package/.next-prod/static/chunks/app/api/sessions/projects/route-6f58f82d7dc6888f.js +0 -1
  520. package/.next-prod/static/chunks/app/api/sessions/route-6f58f82d7dc6888f.js +0 -1
  521. package/.next-prod/static/chunks/app/api/settings/route-6f58f82d7dc6888f.js +0 -1
  522. package/.next-prod/static/chunks/app/api/terminal/aliases/route-6f58f82d7dc6888f.js +0 -1
  523. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-6f58f82d7dc6888f.js +0 -1
  524. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-6f58f82d7dc6888f.js +0 -1
  525. package/.next-prod/static/chunks/app/api/terminal/env/route-6f58f82d7dc6888f.js +0 -1
  526. package/.next-prod/static/chunks/app/api/terminal/history/route-6f58f82d7dc6888f.js +0 -1
  527. package/.next-prod/static/chunks/app/api/version/route-6f58f82d7dc6888f.js +0 -1
  528. package/.next-prod/static/chunks/app/manifest.webmanifest/route-6f58f82d7dc6888f.js +0 -1
  529. package/.next-prod/static/chunks/app/page-cc2b332242bc2c93.js +0 -1
  530. package/.next-prod/static/chunks/app/project/page-95039285184e0c74.js +0 -25
  531. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-6f58f82d7dc6888f.js +0 -1
  532. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-6f58f82d7dc6888f.js +0 -1
  533. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-6f58f82d7dc6888f.js +0 -1
  534. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-6f58f82d7dc6888f.js +0 -1
  535. package/.next-prod/static/css/bbd65867698c479b.css +0 -3
  536. /package/.next-prod/static/{Avd2f2SegjGOElSYvrTlK → KErTlLLQlubS82IizAx-5}/_ssgManifest.js +0 -0
@@ -0,0 +1,350 @@
1
+ // File: /home/runner/work/cockpit/cockpit/src/app/api/skills/route.ts
2
+ import * as entry from '../../../../../src/app/api/skills/route.js'
3
+ import type { NextRequest } from 'next/server.js'
4
+
5
+ import type { PrefetchForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../../src/app/api/skills/route.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
+ GET?: Function
16
+ HEAD?: Function
17
+ OPTIONS?: Function
18
+ POST?: Function
19
+ PUT?: Function
20
+ DELETE?: Function
21
+ PATCH?: Function
22
+ config?: {}
23
+ generateStaticParams?: Function
24
+ unstable_prefetch?: PrefetchForTypeCheckInternal
25
+ revalidate?: RevalidateRange<TEntry> | false
26
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
27
+ dynamicParams?: boolean
28
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
29
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
30
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
31
+ maxDuration?: number
32
+
33
+ }, TEntry, ''>>()
34
+
35
+ type RouteContext = { params: Promise<SegmentParams> }
36
+ // Check the prop type of the entry function
37
+ if ('GET' in entry) {
38
+ checkFields<
39
+ Diff<
40
+ ParamCheck<Request | NextRequest>,
41
+ {
42
+ __tag__: 'GET'
43
+ __param_position__: 'first'
44
+ __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
45
+ },
46
+ 'GET'
47
+ >
48
+ >()
49
+ checkFields<
50
+ Diff<
51
+ ParamCheck<RouteContext>,
52
+ {
53
+ __tag__: 'GET'
54
+ __param_position__: 'second'
55
+ __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
56
+ },
57
+ 'GET'
58
+ >
59
+ >()
60
+
61
+ checkFields<
62
+ Diff<
63
+ {
64
+ __tag__: 'GET',
65
+ __return_type__: Response | void | never | Promise<Response | void | never>
66
+ },
67
+ {
68
+ __tag__: 'GET',
69
+ __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
70
+ },
71
+ 'GET'
72
+ >
73
+ >()
74
+ }
75
+ // Check the prop type of the entry function
76
+ if ('HEAD' in entry) {
77
+ checkFields<
78
+ Diff<
79
+ ParamCheck<Request | NextRequest>,
80
+ {
81
+ __tag__: 'HEAD'
82
+ __param_position__: 'first'
83
+ __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
84
+ },
85
+ 'HEAD'
86
+ >
87
+ >()
88
+ checkFields<
89
+ Diff<
90
+ ParamCheck<RouteContext>,
91
+ {
92
+ __tag__: 'HEAD'
93
+ __param_position__: 'second'
94
+ __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
95
+ },
96
+ 'HEAD'
97
+ >
98
+ >()
99
+
100
+ checkFields<
101
+ Diff<
102
+ {
103
+ __tag__: 'HEAD',
104
+ __return_type__: Response | void | never | Promise<Response | void | never>
105
+ },
106
+ {
107
+ __tag__: 'HEAD',
108
+ __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
109
+ },
110
+ 'HEAD'
111
+ >
112
+ >()
113
+ }
114
+ // Check the prop type of the entry function
115
+ if ('OPTIONS' in entry) {
116
+ checkFields<
117
+ Diff<
118
+ ParamCheck<Request | NextRequest>,
119
+ {
120
+ __tag__: 'OPTIONS'
121
+ __param_position__: 'first'
122
+ __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
123
+ },
124
+ 'OPTIONS'
125
+ >
126
+ >()
127
+ checkFields<
128
+ Diff<
129
+ ParamCheck<RouteContext>,
130
+ {
131
+ __tag__: 'OPTIONS'
132
+ __param_position__: 'second'
133
+ __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
134
+ },
135
+ 'OPTIONS'
136
+ >
137
+ >()
138
+
139
+ checkFields<
140
+ Diff<
141
+ {
142
+ __tag__: 'OPTIONS',
143
+ __return_type__: Response | void | never | Promise<Response | void | never>
144
+ },
145
+ {
146
+ __tag__: 'OPTIONS',
147
+ __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
148
+ },
149
+ 'OPTIONS'
150
+ >
151
+ >()
152
+ }
153
+ // Check the prop type of the entry function
154
+ if ('POST' in entry) {
155
+ checkFields<
156
+ Diff<
157
+ ParamCheck<Request | NextRequest>,
158
+ {
159
+ __tag__: 'POST'
160
+ __param_position__: 'first'
161
+ __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
162
+ },
163
+ 'POST'
164
+ >
165
+ >()
166
+ checkFields<
167
+ Diff<
168
+ ParamCheck<RouteContext>,
169
+ {
170
+ __tag__: 'POST'
171
+ __param_position__: 'second'
172
+ __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
173
+ },
174
+ 'POST'
175
+ >
176
+ >()
177
+
178
+ checkFields<
179
+ Diff<
180
+ {
181
+ __tag__: 'POST',
182
+ __return_type__: Response | void | never | Promise<Response | void | never>
183
+ },
184
+ {
185
+ __tag__: 'POST',
186
+ __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
187
+ },
188
+ 'POST'
189
+ >
190
+ >()
191
+ }
192
+ // Check the prop type of the entry function
193
+ if ('PUT' in entry) {
194
+ checkFields<
195
+ Diff<
196
+ ParamCheck<Request | NextRequest>,
197
+ {
198
+ __tag__: 'PUT'
199
+ __param_position__: 'first'
200
+ __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
201
+ },
202
+ 'PUT'
203
+ >
204
+ >()
205
+ checkFields<
206
+ Diff<
207
+ ParamCheck<RouteContext>,
208
+ {
209
+ __tag__: 'PUT'
210
+ __param_position__: 'second'
211
+ __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
212
+ },
213
+ 'PUT'
214
+ >
215
+ >()
216
+
217
+ checkFields<
218
+ Diff<
219
+ {
220
+ __tag__: 'PUT',
221
+ __return_type__: Response | void | never | Promise<Response | void | never>
222
+ },
223
+ {
224
+ __tag__: 'PUT',
225
+ __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
226
+ },
227
+ 'PUT'
228
+ >
229
+ >()
230
+ }
231
+ // Check the prop type of the entry function
232
+ if ('DELETE' in entry) {
233
+ checkFields<
234
+ Diff<
235
+ ParamCheck<Request | NextRequest>,
236
+ {
237
+ __tag__: 'DELETE'
238
+ __param_position__: 'first'
239
+ __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
240
+ },
241
+ 'DELETE'
242
+ >
243
+ >()
244
+ checkFields<
245
+ Diff<
246
+ ParamCheck<RouteContext>,
247
+ {
248
+ __tag__: 'DELETE'
249
+ __param_position__: 'second'
250
+ __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
251
+ },
252
+ 'DELETE'
253
+ >
254
+ >()
255
+
256
+ checkFields<
257
+ Diff<
258
+ {
259
+ __tag__: 'DELETE',
260
+ __return_type__: Response | void | never | Promise<Response | void | never>
261
+ },
262
+ {
263
+ __tag__: 'DELETE',
264
+ __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
265
+ },
266
+ 'DELETE'
267
+ >
268
+ >()
269
+ }
270
+ // Check the prop type of the entry function
271
+ if ('PATCH' in entry) {
272
+ checkFields<
273
+ Diff<
274
+ ParamCheck<Request | NextRequest>,
275
+ {
276
+ __tag__: 'PATCH'
277
+ __param_position__: 'first'
278
+ __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
279
+ },
280
+ 'PATCH'
281
+ >
282
+ >()
283
+ checkFields<
284
+ Diff<
285
+ ParamCheck<RouteContext>,
286
+ {
287
+ __tag__: 'PATCH'
288
+ __param_position__: 'second'
289
+ __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
290
+ },
291
+ 'PATCH'
292
+ >
293
+ >()
294
+
295
+ checkFields<
296
+ Diff<
297
+ {
298
+ __tag__: 'PATCH',
299
+ __return_type__: Response | void | never | Promise<Response | void | never>
300
+ },
301
+ {
302
+ __tag__: 'PATCH',
303
+ __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
304
+ },
305
+ 'PATCH'
306
+ >
307
+ >()
308
+ }
309
+
310
+ // Check the arguments and return type of the generateStaticParams function
311
+ if ('generateStaticParams' in entry) {
312
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
313
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
314
+ }
315
+
316
+ export interface PageProps {
317
+ params?: Promise<SegmentParams>
318
+ searchParams?: Promise<any>
319
+ }
320
+ export interface LayoutProps {
321
+ children?: React.ReactNode
322
+
323
+ params?: Promise<SegmentParams>
324
+ }
325
+
326
+ // =============
327
+ // Utility types
328
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
329
+
330
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
331
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
332
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
333
+
334
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
335
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
336
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
337
+
338
+ type ParamCheck<T> = {
339
+ __tag__: string
340
+ __param_position__: string
341
+ __param_type__: T
342
+ }
343
+
344
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
345
+
346
+ // https://github.com/sindresorhus/type-fest
347
+ type Numeric = number | bigint
348
+ type Zero = 0 | 0n
349
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
350
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -2,7 +2,7 @@
2
2
  // Do not edit this file manually
3
3
 
4
4
  type AppRoutes = "/" | "/project" | "/review/[id]"
5
- type AppRouteHandlerRoutes = "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/kimi" | "/api/chat/ollama" | "/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/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/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/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/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/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
5
+ type AppRouteHandlerRoutes = "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/kimi" | "/api/chat/ollama" | "/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/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/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/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/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"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -105,6 +105,9 @@ interface ParamMap {
105
105
  "/api/sessions/projects": {}
106
106
  "/api/sessions/projects/[encodedPath]": { "encodedPath": string; }
107
107
  "/api/settings": {}
108
+ "/api/skills": {}
109
+ "/api/skills/[id]": { "id": string; }
110
+ "/api/skills/content": {}
108
111
  "/api/terminal/aliases": {}
109
112
  "/api/terminal/autocomplete": {}
110
113
  "/api/terminal/bubble-order": {}
@@ -911,6 +911,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
911
911
  type __Unused = __Check
912
912
  }
913
913
 
914
+ // Validate ../../src/app/api/skills/[id]/route.ts
915
+ {
916
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/[id]">> = Specific
917
+ const handler = {} as typeof import("../../src/app/api/skills/[id]/route.js")
918
+ type __Check = __IsExpected<typeof handler>
919
+ // @ts-ignore
920
+ type __Unused = __Check
921
+ }
922
+
923
+ // Validate ../../src/app/api/skills/content/route.ts
924
+ {
925
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/content">> = Specific
926
+ const handler = {} as typeof import("../../src/app/api/skills/content/route.js")
927
+ type __Check = __IsExpected<typeof handler>
928
+ // @ts-ignore
929
+ type __Unused = __Check
930
+ }
931
+
932
+ // Validate ../../src/app/api/skills/route.ts
933
+ {
934
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills">> = Specific
935
+ const handler = {} as typeof import("../../src/app/api/skills/route.js")
936
+ type __Check = __IsExpected<typeof handler>
937
+ // @ts-ignore
938
+ type __Unused = __Check
939
+ }
940
+
914
941
  // Validate ../../src/app/api/terminal/aliases/route.ts
915
942
  {
916
943
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/terminal/aliases">> = Specific
@@ -225,6 +225,66 @@ async function fetchBrowserInfo(shortId) {
225
225
  }
226
226
  }
227
227
 
228
+ // Chunked evaluate result resolver
229
+ //
230
+ // Chrome extension 的 runtime messaging 在 sendResponse 边界有一个 ~8 KiB 的
231
+ // 隐性 structured-clone 截断点;为了避免 evaluate 大结果被默默截掉,
232
+ // extension 侧会把 >6 KiB 的结果暂存到 page window 上的一个 Map,
233
+ // 返回一个 { __cockpit_chunked: true, token, totalBytes, isString } 的
234
+ // descriptor。这里遇到 descriptor 就自动走 evaluate_chunk action 把完整
235
+ // payload 拉回来,对上层 formatOutput 完全透明。
236
+ async function fetchOneChunk(baseUrl, id, token, offset, cmdTimeout) {
237
+ const resp = await fetch(`${baseUrl}/api/browser/evaluate_chunk`, {
238
+ method: 'POST',
239
+ headers: { 'Content-Type': 'application/json' },
240
+ body: JSON.stringify({
241
+ id,
242
+ params: { token, offset, size: 5000 },
243
+ timeout: Math.max(5000, Math.min(cmdTimeout, 15000)),
244
+ }),
245
+ signal: AbortSignal.timeout(20000),
246
+ });
247
+ const j = await resp.json();
248
+ if (!j.ok) throw new Error(`evaluate_chunk HTTP failed: ${j.error || 'unknown'}`);
249
+ const r = j.data;
250
+ if (!r || r.error) throw new Error(`evaluate_chunk error: ${r?.error || 'empty response'}`);
251
+ return r; // { chunk, done, nextOffset, totalBytes, isString }
252
+ }
253
+
254
+ async function resolveChunkedDescriptor(baseUrl, id, descriptor, cmdTimeout) {
255
+ const { token, totalBytes, isString } = descriptor;
256
+ const parts = [];
257
+ let offset = 0;
258
+ let iterations = 0;
259
+ while (offset < totalBytes) {
260
+ if (++iterations > 2000) throw new Error('evaluate chunking: too many iterations (>2000)');
261
+ const r = await fetchOneChunk(baseUrl, id, token, offset, cmdTimeout);
262
+ parts.push(r.chunk);
263
+ offset = r.nextOffset;
264
+ if (r.done) break;
265
+ }
266
+ const full = parts.join('');
267
+ if (isString) return full;
268
+ try {
269
+ return JSON.parse(full);
270
+ } catch (err) {
271
+ throw new Error(`evaluate chunking: concatenated payload is not valid JSON (${err.message}); raw length=${full.length}`);
272
+ }
273
+ }
274
+
275
+ async function autoResolveChunked(baseUrl, id, data, cmdTimeout) {
276
+ if (data && typeof data === 'object') {
277
+ if (data.__cockpit_chunked === true && typeof data.token === 'string') {
278
+ return await resolveChunkedDescriptor(baseUrl, id, data, cmdTimeout);
279
+ }
280
+ // allFrames=true 聚合时可能得到数组,每一项都可能是独立 chunked
281
+ if (Array.isArray(data)) {
282
+ return Promise.all(data.map(item => autoResolveChunked(baseUrl, id, item, cmdTimeout)));
283
+ }
284
+ }
285
+ return data;
286
+ }
287
+
228
288
  // Send request
229
289
  async function run() {
230
290
  // Only id provided without action → show help + status
@@ -273,8 +333,12 @@ async function run() {
273
333
  process.exit(1);
274
334
  }
275
335
 
336
+ // 大结果由 extension 端自动 stash 并返回 chunked descriptor;
337
+ // 这里透明地把完整内容拉回来,调用方看不到 chunking 细节。
338
+ const resolved = await autoResolveChunked(baseUrl, id, data.data, timeout);
339
+
276
340
  // Format output
277
- await formatOutput(action, data.data);
341
+ await formatOutput(action, resolved);
278
342
  } catch (err) {
279
343
  if (err.name === 'TimeoutError' || err.code === 'ABORT_ERR') {
280
344
  console.error(`Timeout: No response within ${timeout}ms. Is the browser bubble connected?`);
@@ -446,6 +446,8 @@ const handlers = {
446
446
  // 通过 background.js 的 chrome.scripting.executeScript 在 main world 执行
447
447
  // 不受页面 CSP 限制,可访问页面 JS 变量(React state 等)
448
448
  // allFrames: true → 在所有 frame 中执行(解决跨域 iframe 访问问题)
449
+ // 大结果 (>6 KiB) 会在 MAIN world 被 auto-stash 并以 descriptor 形式返回;
450
+ // cock-browser CLI 识别 descriptor 后会通过 evaluate_chunk 回填内容。
449
451
  return new Promise((resolve) => {
450
452
  _chrome.runtime.sendMessage({ type: 'cockpit:evaluate', js, allFrames: !!allFrames }, (response) => {
451
453
  if (_chrome.runtime.lastError) {
@@ -458,6 +460,40 @@ const handlers = {
458
460
  });
459
461
  },
460
462
 
463
+ evaluate_chunk: async ({ token, offset = 0, size = 5000 }) => {
464
+ // 读取 MAIN-world stash 里某个 token 的一段内容。token 由上一次 evaluate
465
+ // 返回的 descriptor 提供。注意 stash 在 page window 上,页面导航/刷新会丢;
466
+ // 必须同一个浏览器 session、同一个页面上下文。
467
+ //
468
+ // 返回 { chunk, done, nextOffset, totalBytes, isString };
469
+ // size 默认 5000 以确保每次返回对象 JSON 序列化 < 6000,远低于 Chrome
470
+ // 在 chrome.runtime 消息边界的 ~8192 字节隐性截断阈值。
471
+ const offNum = Number(offset) || 0;
472
+ const szNum = Math.min(Math.max(1, Number(size) || 5000), 7000);
473
+ const tokStr = String(token);
474
+ const js =
475
+ '(()=>{' +
476
+ 'const M=window.__cockpit_eval_stash_v1__;' +
477
+ "if(!M)return{error:'stash not initialised — nothing has been chunked, or page was reloaded after evaluate'};" +
478
+ 'const e=M.get(' + JSON.stringify(tokStr) + ');' +
479
+ "if(!e)return{error:'token not found or expired (stash TTL is 10 min, and page navigation clears it)'};" +
480
+ 'const off=' + offNum + ';' +
481
+ 'const sz=' + szNum + ';' +
482
+ 'const chunk=e.payload.slice(off,off+sz);' +
483
+ 'const nextOffset=off+chunk.length;' +
484
+ 'const done=nextOffset>=e.payload.length;' +
485
+ 'if(done)M.delete(' + JSON.stringify(tokStr) + ');' +
486
+ 'return{chunk,done,nextOffset,totalBytes:e.payload.length,isString:e.isString};' +
487
+ '})()';
488
+ return new Promise((resolve) => {
489
+ _chrome.runtime.sendMessage({ type: 'cockpit:evaluate', js, allFrames: false }, (response) => {
490
+ if (_chrome.runtime.lastError) { resolve({ error: _chrome.runtime.lastError.message }); return; }
491
+ if (response?.ok) resolve(response.data);
492
+ else resolve({ error: response?.error || 'evaluate_chunk failed' });
493
+ });
494
+ });
495
+ },
496
+
461
497
  console: async ({ level, clear: doClear }) => {
462
498
  if (doClear) { consoleBuffer.length = 0; return { cleared: true }; }
463
499
  return level ? consoleBuffer.filter(m => m.level === level) : [...consoleBuffer];
@@ -250,18 +250,65 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
250
250
  target,
251
251
  world: 'MAIN',
252
252
  func: async (code) => {
253
+ // Chrome extension messaging 在 sendResponse 的 structured clone 边界
254
+ // 存在一个隐性约 8 KiB 的截断点(复现于 session 6910d071 的 evaluate
255
+ // 输出精确停在 8192 字节)。为避免大结果被默默截掉,我们在 MAIN
256
+ // world 里先评估结果;如果序列化后 > CHUNK_THRESHOLD,把完整负载
257
+ // 暂存到页面 window 上的一个 Map,只把一个 descriptor 返回给上层。
258
+ // cock-browser CLI 会识别这个 descriptor 并通过 evaluate_chunk
259
+ // action 分块读取、拼回完整内容,对调用方透明。
260
+ const CHUNK_THRESHOLD = 6000;
261
+
262
+ const maybeChunk = (data) => {
263
+ let serialized;
264
+ const isString = typeof data === 'string';
265
+ try {
266
+ serialized = isString
267
+ ? data
268
+ : (data === null || data === undefined)
269
+ ? ''
270
+ : JSON.stringify(data);
271
+ } catch {
272
+ // 不可序列化(循环引用等)— 原样返回,让上层照原路径处理
273
+ return { ok: true, data };
274
+ }
275
+ if (!serialized || serialized.length <= CHUNK_THRESHOLD) {
276
+ return { ok: true, data };
277
+ }
278
+ const W = window;
279
+ if (!W.__cockpit_eval_stash_v1__) W.__cockpit_eval_stash_v1__ = new Map();
280
+ const stash = W.__cockpit_eval_stash_v1__;
281
+ // 10 min GC:避免长会话页面堆积大 payload
282
+ const cutoff = Date.now() - 10 * 60 * 1000;
283
+ for (const [k, v] of stash) {
284
+ if (v.created < cutoff) stash.delete(k);
285
+ }
286
+ const token =
287
+ 'ck-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8);
288
+ stash.set(token, { payload: serialized, isString, created: Date.now() });
289
+ return {
290
+ ok: true,
291
+ data: {
292
+ __cockpit_chunked: true,
293
+ token,
294
+ totalBytes: serialized.length,
295
+ isString,
296
+ },
297
+ };
298
+ };
299
+
253
300
  // 层 1: 直接 eval — 覆盖表达式、多语句、IIFE、模板字面量等
254
301
  // eval 自动返回最后一个表达式的值(类似 CDP replMode)
255
302
  try {
256
303
  const result = (0, eval)(code);
257
304
  const data = result instanceof Promise ? await result : result;
258
- return { ok: true, data };
305
+ return maybeChunk(data);
259
306
  } catch (e1) {
260
307
  // 层 2: AsyncFunction fallback — 覆盖含顶层 await 的代码
261
308
  try {
262
309
  const AF = Object.getPrototypeOf(async function(){}).constructor;
263
310
  const data = await new AF(code)();
264
- return { ok: true, data };
311
+ return maybeChunk(data);
265
312
  } catch {
266
313
  return { ok: false, error: e1.message };
267
314
  }
@@ -12,6 +12,7 @@ var PINNED_SESSIONS_FILE = join(COCKPIT_DIR, "pinned-sessions.json");
12
12
  var NOTE_FILE = join(COCKPIT_DIR, "note.md");
13
13
  var SCHEDULED_TASKS_FILE = join(COCKPIT_DIR, "scheduled-tasks.json");
14
14
  var SETTINGS_FILE = join(COCKPIT_DIR, "settings.json");
15
+ var SKILLS_FILE = join(COCKPIT_DIR, "skills.json");
15
16
  var REVIEW_DIR = join(COCKPIT_DIR, "review");
16
17
  var REVIEW_SIGNAL_FILE = join(REVIEW_DIR, "_signal");
17
18
  var CLAUDE_DIR = join(HOME_DIR, ".claude");
@@ -5,7 +5,7 @@ import {
5
5
  readJsonFile,
6
6
  updateGlobalState,
7
7
  writeJsonFile
8
- } from "./chunk-KLV3PBIZ.mjs";
8
+ } from "./chunk-ZDTXJE6Z.mjs";
9
9
 
10
10
  // src/lib/scheduledTasks.ts
11
11
  import { query } from "@anthropic-ai/claude-agent-sdk";
package/dist/wsServer.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  getTerminalHistoryPath,
8
8
  getTerminalOutputPath,
9
9
  readJsonFile
10
- } from "./chunk-KLV3PBIZ.mjs";
10
+ } from "./chunk-ZDTXJE6Z.mjs";
11
11
 
12
12
  // src/lib/wsServer.ts
13
13
  import { WebSocketServer, WebSocket as WebSocket2 } from "ws";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surething/cockpit",
3
- "version": "1.0.187",
3
+ "version": "1.0.189",
4
4
  "description": "The Cockpit That Drives AI",
5
5
  "author": "Robert",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- "use strict";exports.id=4042,exports.ids=[4042],exports.modules={24042:(a,b,c)=>{c.d(b,{createRadarServices:()=>d.f});var d=c(16277);c(66034)}};