@surething/cockpit 1.0.213 → 1.0.215

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 (572) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +6 -2
  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 +24 -0
  6. package/.next-prod/server/app/_global-error/page.js +3 -3
  7. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next-prod/server/app/_global-error.html +1 -1
  10. package/.next-prod/server/app/_global-error.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next-prod/server/app/_not-found/page.js +2 -2
  18. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next-prod/server/app/_not-found.html +1 -1
  21. package/.next-prod/server/app/_not-found.rsc +3 -3
  22. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  23. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  25. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/.next-prod/server/app/api/agent/test/route.js +1 -1
  29. package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
  30. package/.next-prod/server/app/api/bash/route.js +1 -1
  31. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  32. package/.next-prod/server/app/api/chat/codex/route.js +2 -2
  33. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  34. package/.next-prod/server/app/api/chat/deepseek/route.js +2 -2
  35. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/chat/kimi/route.js +2 -2
  37. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  38. package/.next-prod/server/app/api/chat/ollama/route.js +4 -4
  39. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/chat/route.js +2 -2
  41. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  43. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  44. package/.next-prod/server/app/api/commands/route.js +1 -1
  45. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/comments/route.js +1 -1
  47. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  48. package/.next-prod/server/app/api/db/columns/route.js +2 -2
  49. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  50. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  51. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  52. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  53. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  54. package/.next-prod/server/app/api/db/export/route.js +1 -1
  55. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  56. package/.next-prod/server/app/api/db/query/route.js +1 -1
  57. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  58. package/.next-prod/server/app/api/db/schemas/route.js +1 -1
  59. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  60. package/.next-prod/server/app/api/dev/spans/route.js +1 -1
  61. package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
  62. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  63. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  64. package/.next-prod/server/app/api/file/route.js +1 -1
  65. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  66. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  67. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  68. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  69. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  70. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  71. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  72. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  73. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  74. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  75. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  76. package/.next-prod/server/app/api/files/index/route.js +1 -1
  77. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  78. package/.next-prod/server/app/api/files/init/route.js +1 -1
  79. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  80. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  81. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  82. package/.next-prod/server/app/api/files/read/route.js +1 -1
  83. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  84. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  85. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  86. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  87. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/files/save/route.js +1 -1
  89. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  90. package/.next-prod/server/app/api/files/search/route.js +1 -1
  91. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  92. package/.next-prod/server/app/api/files/stat/route.js +1 -1
  93. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/files/text/route.js +1 -1
  95. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  96. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  97. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  98. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  99. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  101. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  102. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  103. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  104. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  105. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  107. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  108. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  109. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  110. package/.next-prod/server/app/api/git/status/route.js +1 -1
  111. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  113. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  114. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  115. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  116. package/.next-prod/server/app/api/global-state/route.js +1 -1
  117. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  119. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  120. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  121. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  122. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  123. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  124. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  125. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  126. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  127. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  128. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  129. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  131. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  132. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  133. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  134. package/.next-prod/server/app/api/mysql/columns/route.js +1 -1
  135. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  137. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  138. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  139. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  140. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  141. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  142. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  143. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  144. package/.next-prod/server/app/api/mysql/schemas/route.js +1 -1
  145. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  146. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  147. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  149. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  150. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  151. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  152. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  153. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/note/route.js +1 -1
  155. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  156. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  157. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  158. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  159. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  161. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  162. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  163. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  164. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  165. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  166. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  167. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  168. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  169. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  170. package/.next-prod/server/app/api/project-state/route.js +1 -1
  171. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  172. package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -0
  173. package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -0
  174. package/.next-prod/server/app/api/projectGraph/affected/route_client-reference-manifest.js +1 -0
  175. package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
  176. package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
  177. package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
  178. package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
  179. package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
  180. package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/projectGraph/context/route.js +1 -0
  182. package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -0
  183. package/.next-prod/server/app/api/projectGraph/context/route_client-reference-manifest.js +1 -0
  184. package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
  185. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  186. package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
  187. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  188. package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
  189. package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
  190. package/.next-prod/server/app/api/projectGraph/related/route.js +1 -0
  191. package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -0
  192. package/.next-prod/server/app/api/projectGraph/related/route_client-reference-manifest.js +1 -0
  193. package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -0
  194. package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -0
  195. package/.next-prod/server/app/api/projectGraph/risk/route_client-reference-manifest.js +1 -0
  196. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  197. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  198. package/.next-prod/server/app/api/projects/route.js +1 -1
  199. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  200. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  201. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  202. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  203. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  204. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  205. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  206. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  207. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  208. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  209. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  210. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  211. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  212. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  213. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  214. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  215. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  216. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  217. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  218. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  219. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  220. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  221. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  222. package/.next-prod/server/app/api/review/order/route.js +1 -1
  223. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  224. package/.next-prod/server/app/api/review/route.js +1 -1
  225. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  226. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  227. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  228. package/.next-prod/server/app/api/review/users/route.js +1 -1
  229. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  230. package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
  231. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  232. package/.next-prod/server/app/api/services/config/route.js +1 -1
  233. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  234. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  235. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  236. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  237. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  238. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  239. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  240. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  241. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  242. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  243. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  244. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  245. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  246. package/.next-prod/server/app/api/sessions/route.js +1 -1
  247. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  248. package/.next-prod/server/app/api/settings/route.js +1 -1
  249. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  250. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  251. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  252. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  253. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  254. package/.next-prod/server/app/api/skills/route.js +1 -1
  255. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  256. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  257. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  258. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  259. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  260. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  261. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  262. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  263. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  264. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  265. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  266. package/.next-prod/server/app/api/version/route.js +1 -1
  267. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  268. package/.next-prod/server/app/favicon.ico/route.js +1 -1
  269. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  270. package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
  271. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  272. package/.next-prod/server/app/page.js +2 -2
  273. package/.next-prod/server/app/page.js.nft.json +1 -1
  274. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  275. package/.next-prod/server/app/project/page.js +2 -2
  276. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  277. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  278. package/.next-prod/server/app/review/[id]/page.js +2 -2
  279. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  280. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  281. package/.next-prod/server/app-paths-manifest.json +6 -2
  282. package/.next-prod/server/chunks/2540.js +1 -0
  283. package/.next-prod/server/chunks/2939.js +1 -1
  284. package/.next-prod/server/chunks/4008.js +1 -0
  285. package/.next-prod/server/chunks/8916.js +1 -1
  286. package/.next-prod/server/chunks/9658.js +4 -4
  287. package/.next-prod/server/chunks/{7828.js → 9877.js} +80 -3
  288. package/.next-prod/server/middleware-build-manifest.js +1 -1
  289. package/.next-prod/server/pages/404.html +1 -1
  290. package/.next-prod/server/pages/500.html +1 -1
  291. package/.next-prod/server/server-reference-manifest.json +1 -1
  292. package/.next-prod/static/chunks/2171-1d5aa2a301006dfb.js +1 -0
  293. package/.next-prod/static/chunks/{5188-3337a5d88efc5fc1.js → 5188-415582403ef0e29c.js} +2 -2
  294. package/.next-prod/static/chunks/6345-e5ceeb2aeb698eb6.js +14 -0
  295. package/.next-prod/static/chunks/{aaea2bcf-be8b39a8f32280f3.js → aaea2bcf-56770c8875ee56c9.js} +1 -1
  296. package/.next-prod/static/chunks/app/_global-error/page-8ae56b9359db0996.js +1 -0
  297. package/.next-prod/static/chunks/app/api/agent/test/route-8ae56b9359db0996.js +1 -0
  298. package/.next-prod/static/chunks/app/api/bash/route-8ae56b9359db0996.js +1 -0
  299. package/.next-prod/static/chunks/app/api/chat/codex/route-8ae56b9359db0996.js +1 -0
  300. package/.next-prod/static/chunks/app/api/chat/deepseek/route-8ae56b9359db0996.js +1 -0
  301. package/.next-prod/static/chunks/app/api/chat/kimi/route-8ae56b9359db0996.js +1 -0
  302. package/.next-prod/static/chunks/app/api/chat/ollama/route-8ae56b9359db0996.js +1 -0
  303. package/.next-prod/static/chunks/app/api/chat/route-8ae56b9359db0996.js +1 -0
  304. package/.next-prod/static/chunks/app/api/claude-stats/route-8ae56b9359db0996.js +1 -0
  305. package/.next-prod/static/chunks/app/api/commands/route-8ae56b9359db0996.js +1 -0
  306. package/.next-prod/static/chunks/app/api/comments/route-8ae56b9359db0996.js +1 -0
  307. package/.next-prod/static/chunks/app/api/db/columns/route-8ae56b9359db0996.js +1 -0
  308. package/.next-prod/static/chunks/app/api/db/connect/route-8ae56b9359db0996.js +1 -0
  309. package/.next-prod/static/chunks/app/api/db/disconnect/route-8ae56b9359db0996.js +1 -0
  310. package/.next-prod/static/chunks/app/api/db/export/route-8ae56b9359db0996.js +1 -0
  311. package/.next-prod/static/chunks/app/api/db/query/route-8ae56b9359db0996.js +1 -0
  312. package/.next-prod/static/chunks/app/api/db/schemas/route-8ae56b9359db0996.js +1 -0
  313. package/.next-prod/static/chunks/app/api/dev/spans/route-8ae56b9359db0996.js +1 -0
  314. package/.next-prod/static/chunks/app/api/extension/version/route-8ae56b9359db0996.js +1 -0
  315. package/.next-prod/static/chunks/app/api/file/route-8ae56b9359db0996.js +1 -0
  316. package/.next-prod/static/chunks/app/api/files/blame/route-8ae56b9359db0996.js +1 -0
  317. package/.next-prod/static/chunks/app/api/files/clipboard/route-8ae56b9359db0996.js +1 -0
  318. package/.next-prod/static/chunks/app/api/files/copy/route-8ae56b9359db0996.js +1 -0
  319. package/.next-prod/static/chunks/app/api/files/delete/route-8ae56b9359db0996.js +1 -0
  320. package/.next-prod/static/chunks/app/api/files/expanded/route-8ae56b9359db0996.js +1 -0
  321. package/.next-prod/static/chunks/app/api/files/index/route-8ae56b9359db0996.js +1 -0
  322. package/.next-prod/static/chunks/app/api/files/init/route-8ae56b9359db0996.js +1 -0
  323. package/.next-prod/static/chunks/app/api/files/paste/route-8ae56b9359db0996.js +1 -0
  324. package/.next-prod/static/chunks/app/api/files/read/route-8ae56b9359db0996.js +1 -0
  325. package/.next-prod/static/chunks/app/api/files/readdir/route-8ae56b9359db0996.js +1 -0
  326. package/.next-prod/static/chunks/app/api/files/recent/route-8ae56b9359db0996.js +1 -0
  327. package/.next-prod/static/chunks/app/api/files/save/route-8ae56b9359db0996.js +1 -0
  328. package/.next-prod/static/chunks/app/api/files/search/route-8ae56b9359db0996.js +1 -0
  329. package/.next-prod/static/chunks/app/api/files/stat/route-8ae56b9359db0996.js +1 -0
  330. package/.next-prod/static/chunks/app/api/files/text/route-8ae56b9359db0996.js +1 -0
  331. package/.next-prod/static/chunks/app/api/git/branch-diff/route-8ae56b9359db0996.js +1 -0
  332. package/.next-prod/static/chunks/app/api/git/branches/route-8ae56b9359db0996.js +1 -0
  333. package/.next-prod/static/chunks/app/api/git/commit-diff/route-8ae56b9359db0996.js +1 -0
  334. package/.next-prod/static/chunks/app/api/git/commits/route-8ae56b9359db0996.js +1 -0
  335. package/.next-prod/static/chunks/app/api/git/diff/route-8ae56b9359db0996.js +1 -0
  336. package/.next-prod/static/chunks/app/api/git/discard/route-8ae56b9359db0996.js +1 -0
  337. package/.next-prod/static/chunks/app/api/git/stage/route-8ae56b9359db0996.js +1 -0
  338. package/.next-prod/static/chunks/app/api/git/status/route-8ae56b9359db0996.js +1 -0
  339. package/.next-prod/static/chunks/app/api/git/unstage/route-8ae56b9359db0996.js +1 -0
  340. package/.next-prod/static/chunks/app/api/git/worktree/route-8ae56b9359db0996.js +1 -0
  341. package/.next-prod/static/chunks/app/api/global-state/route-8ae56b9359db0996.js +1 -0
  342. package/.next-prod/static/chunks/app/api/jupyter/load/route-8ae56b9359db0996.js +1 -0
  343. package/.next-prod/static/chunks/app/api/jupyter/save/route-8ae56b9359db0996.js +1 -0
  344. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-8ae56b9359db0996.js +1 -0
  345. package/.next-prod/static/chunks/app/api/lsp/definition/route-8ae56b9359db0996.js +1 -0
  346. package/.next-prod/static/chunks/app/api/lsp/hover/route-8ae56b9359db0996.js +1 -0
  347. package/.next-prod/static/chunks/app/api/lsp/references/route-8ae56b9359db0996.js +1 -0
  348. package/.next-prod/static/chunks/app/api/lsp/status/route-8ae56b9359db0996.js +1 -0
  349. package/.next-prod/static/chunks/app/api/lsp/warmup/route-8ae56b9359db0996.js +1 -0
  350. package/.next-prod/static/chunks/app/api/mysql/columns/route-8ae56b9359db0996.js +1 -0
  351. package/.next-prod/static/chunks/app/api/mysql/connect/route-8ae56b9359db0996.js +1 -0
  352. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-8ae56b9359db0996.js +1 -0
  353. package/.next-prod/static/chunks/app/api/mysql/export/route-8ae56b9359db0996.js +1 -0
  354. package/.next-prod/static/chunks/app/api/mysql/query/route-8ae56b9359db0996.js +1 -0
  355. package/.next-prod/static/chunks/app/api/mysql/schemas/route-8ae56b9359db0996.js +1 -0
  356. package/.next-prod/static/chunks/app/api/neo4j/connect/route-8ae56b9359db0996.js +1 -0
  357. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-8ae56b9359db0996.js +1 -0
  358. package/.next-prod/static/chunks/app/api/neo4j/query/route-8ae56b9359db0996.js +1 -0
  359. package/.next-prod/static/chunks/app/api/neo4j/schema/route-8ae56b9359db0996.js +1 -0
  360. package/.next-prod/static/chunks/app/api/note/route-8ae56b9359db0996.js +1 -0
  361. package/.next-prod/static/chunks/app/api/ollama/models/route-8ae56b9359db0996.js +1 -0
  362. package/.next-prod/static/chunks/app/api/ollama/start/route-8ae56b9359db0996.js +1 -0
  363. package/.next-prod/static/chunks/app/api/open-cursor/route-8ae56b9359db0996.js +1 -0
  364. package/.next-prod/static/chunks/app/api/open-vscode/route-8ae56b9359db0996.js +1 -0
  365. package/.next-prod/static/chunks/app/api/pick-folder/route-8ae56b9359db0996.js +1 -0
  366. package/.next-prod/static/chunks/app/api/pinned-sessions/route-8ae56b9359db0996.js +1 -0
  367. package/.next-prod/static/chunks/app/api/project-settings/route-8ae56b9359db0996.js +1 -0
  368. package/.next-prod/static/chunks/app/api/project-state/route-8ae56b9359db0996.js +1 -0
  369. package/.next-prod/static/chunks/app/api/projectGraph/affected/route-8ae56b9359db0996.js +1 -0
  370. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-8ae56b9359db0996.js +1 -0
  371. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-8ae56b9359db0996.js +1 -0
  372. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-8ae56b9359db0996.js +1 -0
  373. package/.next-prod/static/chunks/app/api/projectGraph/context/route-8ae56b9359db0996.js +1 -0
  374. package/.next-prod/static/chunks/app/api/projectGraph/file/route-8ae56b9359db0996.js +1 -0
  375. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-8ae56b9359db0996.js +1 -0
  376. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-8ae56b9359db0996.js +1 -0
  377. package/.next-prod/static/chunks/app/api/projectGraph/related/route-8ae56b9359db0996.js +1 -0
  378. package/.next-prod/static/chunks/app/api/projectGraph/risk/route-8ae56b9359db0996.js +1 -0
  379. package/.next-prod/static/chunks/app/api/projectGraph/search/route-8ae56b9359db0996.js +1 -0
  380. package/.next-prod/static/chunks/app/api/projects/route-8ae56b9359db0996.js +1 -0
  381. package/.next-prod/static/chunks/app/api/redis/command/route-8ae56b9359db0996.js +1 -0
  382. package/.next-prod/static/chunks/app/api/redis/connect/route-8ae56b9359db0996.js +1 -0
  383. package/.next-prod/static/chunks/app/api/redis/delete/route-8ae56b9359db0996.js +1 -0
  384. package/.next-prod/static/chunks/app/api/redis/disconnect/route-8ae56b9359db0996.js +1 -0
  385. package/.next-prod/static/chunks/app/api/redis/get/route-8ae56b9359db0996.js +1 -0
  386. package/.next-prod/static/chunks/app/api/redis/keys/route-8ae56b9359db0996.js +1 -0
  387. package/.next-prod/static/chunks/app/api/redis/set/route-8ae56b9359db0996.js +1 -0
  388. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-8ae56b9359db0996.js +1 -0
  389. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-8ae56b9359db0996.js +1 -0
  390. package/.next-prod/static/chunks/app/api/review/[id]/route-8ae56b9359db0996.js +1 -0
  391. package/.next-prod/static/chunks/app/api/review/identify/route-8ae56b9359db0996.js +1 -0
  392. package/.next-prod/static/chunks/app/api/review/order/route-8ae56b9359db0996.js +1 -0
  393. package/.next-prod/static/chunks/app/api/review/route-8ae56b9359db0996.js +1 -0
  394. package/.next-prod/static/chunks/app/api/review/share-info/route-8ae56b9359db0996.js +1 -0
  395. package/.next-prod/static/chunks/app/api/review/users/route-8ae56b9359db0996.js +1 -0
  396. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-8ae56b9359db0996.js +1 -0
  397. package/.next-prod/static/chunks/app/api/services/config/route-8ae56b9359db0996.js +1 -0
  398. package/.next-prod/static/chunks/app/api/services/scripts/route-8ae56b9359db0996.js +1 -0
  399. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-8ae56b9359db0996.js +1 -0
  400. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-8ae56b9359db0996.js +1 -0
  401. package/.next-prod/static/chunks/app/api/session-by-path/route-8ae56b9359db0996.js +1 -0
  402. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-8ae56b9359db0996.js +1 -0
  403. package/.next-prod/static/chunks/app/api/sessions/projects/route-8ae56b9359db0996.js +1 -0
  404. package/.next-prod/static/chunks/app/api/sessions/route-8ae56b9359db0996.js +1 -0
  405. package/.next-prod/static/chunks/app/api/settings/route-8ae56b9359db0996.js +1 -0
  406. package/.next-prod/static/chunks/app/api/skills/[id]/route-8ae56b9359db0996.js +1 -0
  407. package/.next-prod/static/chunks/app/api/skills/content/route-8ae56b9359db0996.js +1 -0
  408. package/.next-prod/static/chunks/app/api/skills/route-8ae56b9359db0996.js +1 -0
  409. package/.next-prod/static/chunks/app/api/terminal/aliases/route-8ae56b9359db0996.js +1 -0
  410. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-8ae56b9359db0996.js +1 -0
  411. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-8ae56b9359db0996.js +1 -0
  412. package/.next-prod/static/chunks/app/api/terminal/env/route-8ae56b9359db0996.js +1 -0
  413. package/.next-prod/static/chunks/app/api/terminal/history/route-8ae56b9359db0996.js +1 -0
  414. package/.next-prod/static/chunks/app/api/version/route-8ae56b9359db0996.js +1 -0
  415. package/.next-prod/static/chunks/app/manifest.webmanifest/route-8ae56b9359db0996.js +1 -0
  416. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-8ae56b9359db0996.js +1 -0
  417. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-8ae56b9359db0996.js +1 -0
  418. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-8ae56b9359db0996.js +1 -0
  419. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-8ae56b9359db0996.js +1 -0
  420. package/.next-prod/static/css/{f016b445331fc5a2.css → cc6d733cdf607b30.css} +1 -1
  421. package/.next-prod/static/dtH6UmANw3cgn-jbRuVu4/_buildManifest.js +1 -0
  422. package/.next-prod/trace +13 -12
  423. package/.next-prod/trace-build +1 -1
  424. package/.next-prod/types/app/api/projectGraph/affected/route.ts +351 -0
  425. package/.next-prod/types/app/api/projectGraph/context/route.ts +351 -0
  426. package/.next-prod/types/app/api/projectGraph/related/route.ts +351 -0
  427. package/.next-prod/types/app/api/projectGraph/risk/route.ts +351 -0
  428. package/.next-prod/types/routes.d.ts +5 -1
  429. package/.next-prod/types/validator.ts +36 -0
  430. package/README.md +8 -8
  431. package/README.zh.md +8 -8
  432. package/bin/cock-browser.mjs +93 -3
  433. package/bin/cock-codegraph.mjs +907 -0
  434. package/bin/cock-terminal.mjs +476 -159
  435. package/bin/cock.mjs +9 -1
  436. package/bin/cockpit-dev.mjs +9 -0
  437. package/bin/setup-dev.mjs +92 -0
  438. package/dist/cache-GIQJA4HL.mjs +502 -0
  439. package/dist/chunk-7P6ASYW6.mjs +9 -0
  440. package/dist/{chunk-OWUW2O3D.mjs → chunk-CZWJPTRO.mjs} +4 -2
  441. package/dist/{chunk-FBR4KJI5.mjs → chunk-KRTISG5I.mjs} +213 -2
  442. package/dist/{chunk-TXBVUZVH.mjs → chunk-ZJ6CC3MH.mjs} +0 -7
  443. package/dist/httpApi.mjs +203 -17
  444. package/dist/scheduledTasks.mjs +3 -2
  445. package/dist/{server-E7G55DY7.mjs → server-OSOMFNXR.mjs} +27 -4
  446. package/dist/wsServer.mjs +8 -34
  447. package/package.json +5 -2
  448. package/.next-prod/static/-BWPF5YtAsgnego1UPtt9/_buildManifest.js +0 -1
  449. package/.next-prod/static/chunks/2171-5163d946ec03ce80.js +0 -1
  450. package/.next-prod/static/chunks/6345-4299a3385983e28c.js +0 -14
  451. package/.next-prod/static/chunks/app/_global-error/page-994734ef0d317687.js +0 -1
  452. package/.next-prod/static/chunks/app/api/agent/test/route-994734ef0d317687.js +0 -1
  453. package/.next-prod/static/chunks/app/api/bash/route-994734ef0d317687.js +0 -1
  454. package/.next-prod/static/chunks/app/api/chat/codex/route-994734ef0d317687.js +0 -1
  455. package/.next-prod/static/chunks/app/api/chat/deepseek/route-994734ef0d317687.js +0 -1
  456. package/.next-prod/static/chunks/app/api/chat/kimi/route-994734ef0d317687.js +0 -1
  457. package/.next-prod/static/chunks/app/api/chat/ollama/route-994734ef0d317687.js +0 -1
  458. package/.next-prod/static/chunks/app/api/chat/route-994734ef0d317687.js +0 -1
  459. package/.next-prod/static/chunks/app/api/claude-stats/route-994734ef0d317687.js +0 -1
  460. package/.next-prod/static/chunks/app/api/commands/route-994734ef0d317687.js +0 -1
  461. package/.next-prod/static/chunks/app/api/comments/route-994734ef0d317687.js +0 -1
  462. package/.next-prod/static/chunks/app/api/db/columns/route-994734ef0d317687.js +0 -1
  463. package/.next-prod/static/chunks/app/api/db/connect/route-994734ef0d317687.js +0 -1
  464. package/.next-prod/static/chunks/app/api/db/disconnect/route-994734ef0d317687.js +0 -1
  465. package/.next-prod/static/chunks/app/api/db/export/route-994734ef0d317687.js +0 -1
  466. package/.next-prod/static/chunks/app/api/db/query/route-994734ef0d317687.js +0 -1
  467. package/.next-prod/static/chunks/app/api/db/schemas/route-994734ef0d317687.js +0 -1
  468. package/.next-prod/static/chunks/app/api/dev/spans/route-994734ef0d317687.js +0 -1
  469. package/.next-prod/static/chunks/app/api/extension/version/route-994734ef0d317687.js +0 -1
  470. package/.next-prod/static/chunks/app/api/file/route-994734ef0d317687.js +0 -1
  471. package/.next-prod/static/chunks/app/api/files/blame/route-994734ef0d317687.js +0 -1
  472. package/.next-prod/static/chunks/app/api/files/clipboard/route-994734ef0d317687.js +0 -1
  473. package/.next-prod/static/chunks/app/api/files/copy/route-994734ef0d317687.js +0 -1
  474. package/.next-prod/static/chunks/app/api/files/delete/route-994734ef0d317687.js +0 -1
  475. package/.next-prod/static/chunks/app/api/files/expanded/route-994734ef0d317687.js +0 -1
  476. package/.next-prod/static/chunks/app/api/files/index/route-994734ef0d317687.js +0 -1
  477. package/.next-prod/static/chunks/app/api/files/init/route-994734ef0d317687.js +0 -1
  478. package/.next-prod/static/chunks/app/api/files/paste/route-994734ef0d317687.js +0 -1
  479. package/.next-prod/static/chunks/app/api/files/read/route-994734ef0d317687.js +0 -1
  480. package/.next-prod/static/chunks/app/api/files/readdir/route-994734ef0d317687.js +0 -1
  481. package/.next-prod/static/chunks/app/api/files/recent/route-994734ef0d317687.js +0 -1
  482. package/.next-prod/static/chunks/app/api/files/save/route-994734ef0d317687.js +0 -1
  483. package/.next-prod/static/chunks/app/api/files/search/route-994734ef0d317687.js +0 -1
  484. package/.next-prod/static/chunks/app/api/files/stat/route-994734ef0d317687.js +0 -1
  485. package/.next-prod/static/chunks/app/api/files/text/route-994734ef0d317687.js +0 -1
  486. package/.next-prod/static/chunks/app/api/git/branch-diff/route-994734ef0d317687.js +0 -1
  487. package/.next-prod/static/chunks/app/api/git/branches/route-994734ef0d317687.js +0 -1
  488. package/.next-prod/static/chunks/app/api/git/commit-diff/route-994734ef0d317687.js +0 -1
  489. package/.next-prod/static/chunks/app/api/git/commits/route-994734ef0d317687.js +0 -1
  490. package/.next-prod/static/chunks/app/api/git/diff/route-994734ef0d317687.js +0 -1
  491. package/.next-prod/static/chunks/app/api/git/discard/route-994734ef0d317687.js +0 -1
  492. package/.next-prod/static/chunks/app/api/git/stage/route-994734ef0d317687.js +0 -1
  493. package/.next-prod/static/chunks/app/api/git/status/route-994734ef0d317687.js +0 -1
  494. package/.next-prod/static/chunks/app/api/git/unstage/route-994734ef0d317687.js +0 -1
  495. package/.next-prod/static/chunks/app/api/git/worktree/route-994734ef0d317687.js +0 -1
  496. package/.next-prod/static/chunks/app/api/global-state/route-994734ef0d317687.js +0 -1
  497. package/.next-prod/static/chunks/app/api/jupyter/load/route-994734ef0d317687.js +0 -1
  498. package/.next-prod/static/chunks/app/api/jupyter/save/route-994734ef0d317687.js +0 -1
  499. package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-994734ef0d317687.js +0 -1
  500. package/.next-prod/static/chunks/app/api/lsp/definition/route-994734ef0d317687.js +0 -1
  501. package/.next-prod/static/chunks/app/api/lsp/hover/route-994734ef0d317687.js +0 -1
  502. package/.next-prod/static/chunks/app/api/lsp/references/route-994734ef0d317687.js +0 -1
  503. package/.next-prod/static/chunks/app/api/lsp/status/route-994734ef0d317687.js +0 -1
  504. package/.next-prod/static/chunks/app/api/lsp/warmup/route-994734ef0d317687.js +0 -1
  505. package/.next-prod/static/chunks/app/api/mysql/columns/route-994734ef0d317687.js +0 -1
  506. package/.next-prod/static/chunks/app/api/mysql/connect/route-994734ef0d317687.js +0 -1
  507. package/.next-prod/static/chunks/app/api/mysql/disconnect/route-994734ef0d317687.js +0 -1
  508. package/.next-prod/static/chunks/app/api/mysql/export/route-994734ef0d317687.js +0 -1
  509. package/.next-prod/static/chunks/app/api/mysql/query/route-994734ef0d317687.js +0 -1
  510. package/.next-prod/static/chunks/app/api/mysql/schemas/route-994734ef0d317687.js +0 -1
  511. package/.next-prod/static/chunks/app/api/neo4j/connect/route-994734ef0d317687.js +0 -1
  512. package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-994734ef0d317687.js +0 -1
  513. package/.next-prod/static/chunks/app/api/neo4j/query/route-994734ef0d317687.js +0 -1
  514. package/.next-prod/static/chunks/app/api/neo4j/schema/route-994734ef0d317687.js +0 -1
  515. package/.next-prod/static/chunks/app/api/note/route-994734ef0d317687.js +0 -1
  516. package/.next-prod/static/chunks/app/api/ollama/models/route-994734ef0d317687.js +0 -1
  517. package/.next-prod/static/chunks/app/api/ollama/start/route-994734ef0d317687.js +0 -1
  518. package/.next-prod/static/chunks/app/api/open-cursor/route-994734ef0d317687.js +0 -1
  519. package/.next-prod/static/chunks/app/api/open-vscode/route-994734ef0d317687.js +0 -1
  520. package/.next-prod/static/chunks/app/api/pick-folder/route-994734ef0d317687.js +0 -1
  521. package/.next-prod/static/chunks/app/api/pinned-sessions/route-994734ef0d317687.js +0 -1
  522. package/.next-prod/static/chunks/app/api/project-settings/route-994734ef0d317687.js +0 -1
  523. package/.next-prod/static/chunks/app/api/project-state/route-994734ef0d317687.js +0 -1
  524. package/.next-prod/static/chunks/app/api/projectGraph/callees/route-994734ef0d317687.js +0 -1
  525. package/.next-prod/static/chunks/app/api/projectGraph/callers/route-994734ef0d317687.js +0 -1
  526. package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-994734ef0d317687.js +0 -1
  527. package/.next-prod/static/chunks/app/api/projectGraph/file/route-994734ef0d317687.js +0 -1
  528. package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-994734ef0d317687.js +0 -1
  529. package/.next-prod/static/chunks/app/api/projectGraph/impact/route-994734ef0d317687.js +0 -1
  530. package/.next-prod/static/chunks/app/api/projectGraph/search/route-994734ef0d317687.js +0 -1
  531. package/.next-prod/static/chunks/app/api/projects/route-994734ef0d317687.js +0 -1
  532. package/.next-prod/static/chunks/app/api/redis/command/route-994734ef0d317687.js +0 -1
  533. package/.next-prod/static/chunks/app/api/redis/connect/route-994734ef0d317687.js +0 -1
  534. package/.next-prod/static/chunks/app/api/redis/delete/route-994734ef0d317687.js +0 -1
  535. package/.next-prod/static/chunks/app/api/redis/disconnect/route-994734ef0d317687.js +0 -1
  536. package/.next-prod/static/chunks/app/api/redis/get/route-994734ef0d317687.js +0 -1
  537. package/.next-prod/static/chunks/app/api/redis/keys/route-994734ef0d317687.js +0 -1
  538. package/.next-prod/static/chunks/app/api/redis/set/route-994734ef0d317687.js +0 -1
  539. package/.next-prod/static/chunks/app/api/review/[id]/comments/route-994734ef0d317687.js +0 -1
  540. package/.next-prod/static/chunks/app/api/review/[id]/replies/route-994734ef0d317687.js +0 -1
  541. package/.next-prod/static/chunks/app/api/review/[id]/route-994734ef0d317687.js +0 -1
  542. package/.next-prod/static/chunks/app/api/review/identify/route-994734ef0d317687.js +0 -1
  543. package/.next-prod/static/chunks/app/api/review/order/route-994734ef0d317687.js +0 -1
  544. package/.next-prod/static/chunks/app/api/review/route-994734ef0d317687.js +0 -1
  545. package/.next-prod/static/chunks/app/api/review/share-info/route-994734ef0d317687.js +0 -1
  546. package/.next-prod/static/chunks/app/api/review/users/route-994734ef0d317687.js +0 -1
  547. package/.next-prod/static/chunks/app/api/scheduled-tasks/route-994734ef0d317687.js +0 -1
  548. package/.next-prod/static/chunks/app/api/services/config/route-994734ef0d317687.js +0 -1
  549. package/.next-prod/static/chunks/app/api/services/scripts/route-994734ef0d317687.js +0 -1
  550. package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-994734ef0d317687.js +0 -1
  551. package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-994734ef0d317687.js +0 -1
  552. package/.next-prod/static/chunks/app/api/session-by-path/route-994734ef0d317687.js +0 -1
  553. package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-994734ef0d317687.js +0 -1
  554. package/.next-prod/static/chunks/app/api/sessions/projects/route-994734ef0d317687.js +0 -1
  555. package/.next-prod/static/chunks/app/api/sessions/route-994734ef0d317687.js +0 -1
  556. package/.next-prod/static/chunks/app/api/settings/route-994734ef0d317687.js +0 -1
  557. package/.next-prod/static/chunks/app/api/skills/[id]/route-994734ef0d317687.js +0 -1
  558. package/.next-prod/static/chunks/app/api/skills/content/route-994734ef0d317687.js +0 -1
  559. package/.next-prod/static/chunks/app/api/skills/route-994734ef0d317687.js +0 -1
  560. package/.next-prod/static/chunks/app/api/terminal/aliases/route-994734ef0d317687.js +0 -1
  561. package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-994734ef0d317687.js +0 -1
  562. package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-994734ef0d317687.js +0 -1
  563. package/.next-prod/static/chunks/app/api/terminal/env/route-994734ef0d317687.js +0 -1
  564. package/.next-prod/static/chunks/app/api/terminal/history/route-994734ef0d317687.js +0 -1
  565. package/.next-prod/static/chunks/app/api/version/route-994734ef0d317687.js +0 -1
  566. package/.next-prod/static/chunks/app/manifest.webmanifest/route-994734ef0d317687.js +0 -1
  567. package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-994734ef0d317687.js +0 -1
  568. package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-994734ef0d317687.js +0 -1
  569. package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-994734ef0d317687.js +0 -1
  570. package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-994734ef0d317687.js +0 -1
  571. package/bin/cock-dev.mjs +0 -6
  572. /package/.next-prod/static/{-BWPF5YtAsgnego1UPtt9 → dtH6UmANw3cgn-jbRuVu4}/_ssgManifest.js +0 -0
package/bin/cock.mjs CHANGED
@@ -21,6 +21,7 @@ Commands:
21
21
  cockpit <path> Start server, open specified directory
22
22
  browser <id> <action> Control browser bubbles
23
23
  terminal <id> <action> Control terminal bubbles
24
+ codegraph <subcmd> [...] Query the project code graph (search/risk/affected/...)
24
25
  update Update to latest version
25
26
 
26
27
  Options:
@@ -93,6 +94,13 @@ if (process.argv[2] === 'terminal') {
93
94
  await flushAndExit(0);
94
95
  }
95
96
 
97
+ if (process.argv[2] === 'codegraph') {
98
+ process.argv.splice(2, 1);
99
+ const mod = await import('./cock-codegraph.mjs');
100
+ await mod.done;
101
+ await flushAndExit(0);
102
+ }
103
+
96
104
  if (process.argv[2] === 'update') {
97
105
  console.log('Updating @surething/cockpit...');
98
106
  const result = spawnSync('npm', ['install', '-g', '@surething/cockpit@latest'], { stdio: 'inherit' });
@@ -110,7 +118,7 @@ if (process.argv[2] === 'update') {
110
118
  const { existsSync, mkdirSync } = await import('fs');
111
119
  const { homedir } = await import('os');
112
120
 
113
- const knownCommands = new Set(['browser', 'terminal', 'update', 'help']);
121
+ const knownCommands = new Set(['browser', 'terminal', 'update', 'help', 'codegraph']);
114
122
  const arg = process.argv[2];
115
123
  let projectDir = null;
116
124
 
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+
3
+ // cockpit-dev: dev-mode entry. Sets dev env + delegates to cock.mjs which
4
+ // holds the shared subcommand dispatcher. The prod entry binaries are
5
+ // `cockpit` (recommended) and its short alias `cock` — there is NO short
6
+ // `cock-dev` alias by design; dev mode uses the full name only.
7
+ process.env.COCKPIT_ENV = 'dev';
8
+ process.env.COCKPIT_PORT = process.env.COCKPIT_PORT || '3456';
9
+ await import('./cock.mjs');
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Selective symlink for `cockpit-dev` — installs ONLY the dev binary as
4
+ * a live symlink to local source, without touching the global `cockpit`
5
+ * / `cock` binaries which come from `npm install -g @surething/cockpit`.
6
+ *
7
+ * Why not `npm link`:
8
+ * `npm link` is all-or-nothing — it overrides ALL package.json `bin`
9
+ * entries (cockpit, cock, cockpit-dev) with symlinks to local source.
10
+ * That means your prod `cockpit` becomes the dev source too, and any
11
+ * broken commit in the repo immediately breaks production usage. The
12
+ * `unlink` / `install -g` dance to recover is friction.
13
+ *
14
+ * This script avoids that by symlinking JUST `cockpit-dev`. Result:
15
+ * - `cockpit` → unchanged (npm-installed, stable, follows releases)
16
+ * - `cock` → unchanged (npm-installed, prod alias)
17
+ * - `cockpit-dev` → symlink → /<repo>/bin/cockpit-dev.mjs (live)
18
+ *
19
+ * You never need to "unlink"; the symlink coexists with the npm install
20
+ * peacefully and `npm i -g @surething/cockpit@latest` to upgrade prod
21
+ * leaves the dev symlink untouched.
22
+ *
23
+ * Idempotent: replaces an existing symlink/file if present.
24
+ *
25
+ * Run from the cockpit repo root: `npm run setup-dev`
26
+ */
27
+ import { existsSync, lstatSync, unlinkSync, symlinkSync, chmodSync } from 'node:fs';
28
+ import { resolve, dirname } from 'node:path';
29
+ import { fileURLToPath } from 'node:url';
30
+ import { execSync } from 'node:child_process';
31
+
32
+ const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
33
+ const REPO_ROOT = resolve(SCRIPT_DIR, '..');
34
+ const SOURCE = resolve(REPO_ROOT, 'bin/cockpit-dev.mjs');
35
+
36
+ if (!existsSync(SOURCE)) {
37
+ console.error(`✗ Source not found: ${SOURCE}`);
38
+ console.error(` Are you running from the cockpit repo? cwd=${process.cwd()}`);
39
+ process.exit(1);
40
+ }
41
+
42
+ // Resolve global npm bin dir.
43
+ let prefix;
44
+ try {
45
+ prefix = execSync('npm config get prefix', { encoding: 'utf8' }).trim();
46
+ } catch (err) {
47
+ console.error('✗ Failed to resolve npm prefix:', err?.message);
48
+ process.exit(1);
49
+ }
50
+ const TARGET = resolve(prefix, 'bin/cockpit-dev');
51
+
52
+ // Ensure source is executable.
53
+ try {
54
+ chmodSync(SOURCE, 0o755);
55
+ } catch {
56
+ /* non-fatal */
57
+ }
58
+
59
+ // Replace existing symlink/file if any.
60
+ if (existsSync(TARGET) || (() => { try { return lstatSync(TARGET).isSymbolicLink(); } catch { return false; } })()) {
61
+ try {
62
+ unlinkSync(TARGET);
63
+ } catch (err) {
64
+ console.error(`✗ Could not remove existing ${TARGET}:`, err?.message);
65
+ console.error(` You may need: sudo rm ${TARGET}`);
66
+ process.exit(1);
67
+ }
68
+ }
69
+
70
+ try {
71
+ symlinkSync(SOURCE, TARGET, 'file');
72
+ } catch (err) {
73
+ if (err?.code === 'EACCES' || err?.code === 'EPERM') {
74
+ console.error(`✗ Permission denied creating ${TARGET}`);
75
+ console.error(` Either: sudo ln -sf ${SOURCE} ${TARGET}`);
76
+ console.error(` Or: configure npm prefix to a user-writable dir`);
77
+ console.error(` (e.g. npm config set prefix ~/.npm-global)`);
78
+ process.exit(1);
79
+ }
80
+ console.error(`✗ Failed:`, err?.message);
81
+ process.exit(1);
82
+ }
83
+
84
+ console.log(`✓ Linked ${TARGET}`);
85
+ console.log(` → ${SOURCE}`);
86
+ console.log('');
87
+ console.log('Now usable:');
88
+ console.log(' cockpit-dev --version # should report current local version');
89
+ console.log(' cockpit-dev codegraph search foo # talks to dev server on port 3456');
90
+ console.log('');
91
+ console.log('Edits to bin/*.mjs are live (no rerun needed).');
92
+ console.log('Prod `cockpit` / `cock` are untouched — they still come from your npm install.');
@@ -0,0 +1,502 @@
1
+ import "./chunk-7P6ASYW6.mjs";
2
+
3
+ // packages/feature/explorer/src/server/codeMap/analytics/types.ts
4
+ function makeNodeId(filePath, qualifiedName) {
5
+ return `${filePath}::${qualifiedName}`;
6
+ }
7
+
8
+ // packages/feature/explorer/src/server/codeMap/analytics/graph.ts
9
+ var FILE_NODE_QNAME = "__file__";
10
+ function fileNodeId(filePath) {
11
+ return makeNodeId(filePath, FILE_NODE_QNAME);
12
+ }
13
+ function buildAnalyticsGraph(index, version) {
14
+ const nodes = /* @__PURE__ */ new Map();
15
+ const out = /* @__PURE__ */ new Map();
16
+ const inn = /* @__PURE__ */ new Map();
17
+ const pushEdge = (map, from, edge) => {
18
+ let list = map.get(from);
19
+ if (!list) {
20
+ list = [];
21
+ map.set(from, list);
22
+ }
23
+ list.push(edge);
24
+ };
25
+ for (const [filePath, file] of index.files) {
26
+ for (const sym of file.flatSymbols) {
27
+ const id = makeNodeId(filePath, sym.qualifiedName);
28
+ if (!nodes.has(id)) {
29
+ nodes.set(id, {
30
+ filePath,
31
+ qualifiedName: sym.qualifiedName,
32
+ name: sym.name,
33
+ kind: sym.kind,
34
+ startLine: sym.startLine,
35
+ endLine: sym.endLine
36
+ });
37
+ }
38
+ }
39
+ const fId = fileNodeId(filePath);
40
+ if (!nodes.has(fId)) {
41
+ nodes.set(fId, {
42
+ filePath,
43
+ qualifiedName: FILE_NODE_QNAME,
44
+ name: basename(filePath),
45
+ // We deliberately use 'unknown' kind — SymbolKind doesn't have
46
+ // 'file' and we don't want to expand the union for an internal
47
+ // virtual node.
48
+ kind: "unknown",
49
+ startLine: 0,
50
+ endLine: 0
51
+ });
52
+ }
53
+ }
54
+ for (const [filePath, file] of index.files) {
55
+ for (const call of file.intraCalls) {
56
+ const from = makeNodeId(filePath, call.from);
57
+ const to = makeNodeId(filePath, call.to);
58
+ if (!nodes.has(from) || !nodes.has(to)) continue;
59
+ const weight = Math.max(1, call.lines.length);
60
+ pushEdge(out, from, { target: to, edgeType: "intraCall", weight });
61
+ pushEdge(inn, to, { target: from, edgeType: "intraCall", weight });
62
+ }
63
+ }
64
+ for (const [filePath, file] of index.files) {
65
+ for (const call of file.outgoingCalls) {
66
+ const from = makeNodeId(filePath, call.from);
67
+ const to = makeNodeId(call.to.filePath, call.to.qualifiedName);
68
+ if (!nodes.has(from) || !nodes.has(to)) continue;
69
+ const weight = Math.max(1, call.lines.length);
70
+ pushEdge(out, from, { target: to, edgeType: "crossCall", weight });
71
+ pushEdge(inn, to, { target: from, edgeType: "crossCall", weight });
72
+ }
73
+ }
74
+ for (const [filePath, file] of index.files) {
75
+ const fromFNode = fileNodeId(filePath);
76
+ for (const importedFile of file.importedFiles) {
77
+ const toFNode = fileNodeId(importedFile);
78
+ if (!nodes.has(toFNode)) continue;
79
+ pushEdge(out, fromFNode, {
80
+ target: toFNode,
81
+ edgeType: "import",
82
+ weight: 1
83
+ });
84
+ pushEdge(inn, toFNode, {
85
+ target: fromFNode,
86
+ edgeType: "import",
87
+ weight: 1
88
+ });
89
+ }
90
+ }
91
+ for (const [filePath, file] of index.files) {
92
+ const fNode = fileNodeId(filePath);
93
+ const symbols = file.flatSymbols;
94
+ if (symbols.length === 0) continue;
95
+ const outflowWeight = 1 / symbols.length;
96
+ for (const sym of symbols) {
97
+ const symId = makeNodeId(filePath, sym.qualifiedName);
98
+ if (!nodes.has(symId)) continue;
99
+ pushEdge(out, symId, {
100
+ target: fNode,
101
+ edgeType: "import",
102
+ // reuse type tag (no need for a new one)
103
+ weight: 1
104
+ });
105
+ pushEdge(inn, fNode, {
106
+ target: symId,
107
+ edgeType: "import",
108
+ weight: 1
109
+ });
110
+ pushEdge(out, fNode, {
111
+ target: symId,
112
+ edgeType: "import",
113
+ weight: outflowWeight
114
+ });
115
+ pushEdge(inn, symId, {
116
+ target: fNode,
117
+ edgeType: "import",
118
+ weight: outflowWeight
119
+ });
120
+ }
121
+ }
122
+ return {
123
+ cwd: index.cwd,
124
+ version,
125
+ nodes,
126
+ out,
127
+ in: inn
128
+ };
129
+ }
130
+ function basename(p) {
131
+ const i = p.lastIndexOf("/");
132
+ return i < 0 ? p : p.slice(i + 1);
133
+ }
134
+
135
+ // packages/feature/explorer/src/server/codeMap/analytics/pagerank.ts
136
+ function buildOutSumCache(graph) {
137
+ const outSum = /* @__PURE__ */ new Map();
138
+ const dangling = [];
139
+ for (const id of graph.nodes.keys()) {
140
+ const edges = graph.out.get(id);
141
+ if (!edges || edges.length === 0) {
142
+ outSum.set(id, 0);
143
+ dangling.push(id);
144
+ continue;
145
+ }
146
+ let s = 0;
147
+ for (const e of edges) s += e.weight;
148
+ outSum.set(id, s);
149
+ }
150
+ return { outSum, dangling };
151
+ }
152
+ function iterate(graph, resetVec, damping, maxIter, tol, cache2) {
153
+ const n = graph.nodes.size;
154
+ if (n === 0) return /* @__PURE__ */ new Map();
155
+ let rank = /* @__PURE__ */ new Map();
156
+ for (const id of graph.nodes.keys()) {
157
+ rank.set(id, resetVec.get(id) ?? 0);
158
+ }
159
+ for (let iter = 0; iter < maxIter; iter++) {
160
+ const next = /* @__PURE__ */ new Map();
161
+ for (const id of graph.nodes.keys()) {
162
+ next.set(id, (1 - damping) * (resetVec.get(id) ?? 0));
163
+ }
164
+ let danglingMass = 0;
165
+ for (const d of cache2.dangling) danglingMass += rank.get(d) ?? 0;
166
+ if (danglingMass > 0) {
167
+ const distributed = damping * danglingMass;
168
+ for (const [id, w] of resetVec) {
169
+ next.set(id, (next.get(id) ?? 0) + distributed * w);
170
+ }
171
+ }
172
+ for (const [id, edges] of graph.out) {
173
+ const s = cache2.outSum.get(id) ?? 0;
174
+ if (s === 0) continue;
175
+ const share = damping * (rank.get(id) ?? 0) / s;
176
+ if (share === 0) continue;
177
+ for (const e of edges) {
178
+ next.set(e.target, (next.get(e.target) ?? 0) + share * e.weight);
179
+ }
180
+ }
181
+ let delta = 0;
182
+ for (const id of graph.nodes.keys()) {
183
+ delta += Math.abs((next.get(id) ?? 0) - (rank.get(id) ?? 0));
184
+ }
185
+ rank = next;
186
+ if (delta < tol) break;
187
+ }
188
+ return rank;
189
+ }
190
+ function normaliseResetVec(graph, seeds) {
191
+ const out = /* @__PURE__ */ new Map();
192
+ if (!seeds || seeds.size === 0) {
193
+ const w = 1 / Math.max(1, graph.nodes.size);
194
+ for (const id of graph.nodes.keys()) out.set(id, w);
195
+ return out;
196
+ }
197
+ let sum = 0;
198
+ for (const [id, w] of seeds) {
199
+ if (graph.nodes.has(id) && w > 0) {
200
+ out.set(id, w);
201
+ sum += w;
202
+ }
203
+ }
204
+ if (sum === 0) {
205
+ const w = 1 / Math.max(1, graph.nodes.size);
206
+ for (const id of graph.nodes.keys()) out.set(id, w);
207
+ return out;
208
+ }
209
+ for (const [id, w] of out) out.set(id, w / sum);
210
+ return out;
211
+ }
212
+ function pagerank(graph, opts = {}) {
213
+ const damping = opts.damping ?? 0.85;
214
+ const maxIter = opts.maxIter ?? 50;
215
+ const tol = opts.tol ?? 1e-6;
216
+ const cache2 = buildOutSumCache(graph);
217
+ return iterate(graph, normaliseResetVec(graph), damping, maxIter, tol, cache2);
218
+ }
219
+ function personalizedPageRank(graph, seeds, opts = {}) {
220
+ const damping = opts.damping ?? 0.85;
221
+ const maxIter = opts.maxIter ?? 30;
222
+ const tol = opts.tol ?? 1e-6;
223
+ const topK = opts.topK ?? 0;
224
+ const seedMap = Array.isArray(seeds) ? new Map(seeds.map((id) => [id, 1])) : new Map(seeds);
225
+ const resetVec = normaliseResetVec(graph, seedMap);
226
+ const cache2 = buildOutSumCache(graph);
227
+ const ranks = iterate(graph, resetVec, damping, maxIter, tol, cache2);
228
+ const seedSet = new Set(seedMap.keys());
229
+ const results = [];
230
+ for (const [node, score] of ranks) {
231
+ if (seedSet.has(node)) continue;
232
+ if (score <= 0) continue;
233
+ results.push({ node, score });
234
+ }
235
+ results.sort((a, b) => b.score - a.score);
236
+ return topK > 0 ? results.slice(0, topK) : results;
237
+ }
238
+
239
+ // packages/feature/explorer/src/server/codeMap/analytics/tfidf.ts
240
+ var TOKEN_SPLIT = /[\s_./>:\\-]+|(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/g;
241
+ var MIN_TOKEN_LEN = 2;
242
+ var NGRAM_SIZES = [3, 4];
243
+ var NGRAM_WEIGHT = 0.5;
244
+ var MIN_LEN_FOR_NGRAM = 4;
245
+ function tokenize(text) {
246
+ if (!text) return [];
247
+ const raw = text.split(TOKEN_SPLIT);
248
+ const out = [];
249
+ for (const t of raw) {
250
+ if (!t) continue;
251
+ const low = t.toLowerCase();
252
+ if (low.length < MIN_TOKEN_LEN) continue;
253
+ out.push(low);
254
+ }
255
+ return out;
256
+ }
257
+ function* ngrams(s, n) {
258
+ if (s.length < n) return;
259
+ for (let i = 0; i <= s.length - n; i++) yield s.slice(i, i + n);
260
+ }
261
+ function weightedTokens(text) {
262
+ const out = [];
263
+ for (const word of tokenize(text)) {
264
+ out.push({ term: word, weight: 1 });
265
+ if (word.length >= MIN_LEN_FOR_NGRAM) {
266
+ for (const n of NGRAM_SIZES) {
267
+ for (const ng of ngrams(word, n)) {
268
+ out.push({ term: ng, weight: NGRAM_WEIGHT });
269
+ }
270
+ }
271
+ }
272
+ }
273
+ return out;
274
+ }
275
+ function nodeTokensWeighted(meta) {
276
+ if (!meta.tokens) {
277
+ meta.tokens = [
278
+ ...tokenize(meta.name),
279
+ ...tokenize(meta.qualifiedName),
280
+ ...tokenize(meta.filePath.replace(/\.[^./]+$/, ""))
281
+ ];
282
+ }
283
+ const out = [];
284
+ for (const word of meta.tokens) {
285
+ out.push({ term: word, weight: 1 });
286
+ if (word.length >= MIN_LEN_FOR_NGRAM) {
287
+ for (const n of NGRAM_SIZES) {
288
+ for (const ng of ngrams(word, n)) {
289
+ out.push({ term: ng, weight: NGRAM_WEIGHT });
290
+ }
291
+ }
292
+ }
293
+ }
294
+ return out;
295
+ }
296
+ var TfidfIndex = class {
297
+ constructor(graph) {
298
+ this.df = /* @__PURE__ */ new Map();
299
+ // term → doc-frequency
300
+ /** node → term → accumulated weight (multiple occurrences sum up). */
301
+ this.tfByNode = /* @__PURE__ */ new Map();
302
+ /** L2 norm of each doc's tfidf vector (pre-computed for cosine sim). */
303
+ this.normByNode = /* @__PURE__ */ new Map();
304
+ this.nDocs = graph.nodes.size;
305
+ for (const [id, meta] of graph.nodes) {
306
+ const weighted = nodeTokensWeighted(meta);
307
+ const tf = /* @__PURE__ */ new Map();
308
+ for (const { term, weight } of weighted) {
309
+ tf.set(term, (tf.get(term) ?? 0) + weight);
310
+ }
311
+ this.tfByNode.set(id, tf);
312
+ for (const term of tf.keys()) {
313
+ this.df.set(term, (this.df.get(term) ?? 0) + 1);
314
+ }
315
+ }
316
+ for (const [id, tf] of this.tfByNode) {
317
+ let s = 0;
318
+ for (const [term, c] of tf) {
319
+ const w = c * this.idf(term);
320
+ s += w * w;
321
+ }
322
+ this.normByNode.set(id, Math.sqrt(s) || 1);
323
+ }
324
+ }
325
+ idf(term) {
326
+ const df = this.df.get(term) ?? 0;
327
+ if (df === 0) return 0;
328
+ return Math.log((this.nDocs + 1) / (df + 1)) + 1;
329
+ }
330
+ /** Search by free-text query — cosine similarity against per-doc
331
+ * tfidf vectors. Returns top-K hits by score. */
332
+ search(query, topK = 10) {
333
+ const qWeighted = weightedTokens(query);
334
+ if (qWeighted.length === 0) return [];
335
+ const qtf = /* @__PURE__ */ new Map();
336
+ for (const { term, weight } of qWeighted) {
337
+ qtf.set(term, (qtf.get(term) ?? 0) + weight);
338
+ }
339
+ const qVec = /* @__PURE__ */ new Map();
340
+ let qNormSq = 0;
341
+ for (const [term, c] of qtf) {
342
+ const w = c * this.idf(term);
343
+ if (w === 0) continue;
344
+ qVec.set(term, w);
345
+ qNormSq += w * w;
346
+ }
347
+ const qNorm = Math.sqrt(qNormSq);
348
+ if (qNorm === 0) return [];
349
+ const scores = /* @__PURE__ */ new Map();
350
+ for (const [node, tf] of this.tfByNode) {
351
+ let dot = 0;
352
+ for (const [term, qw] of qVec) {
353
+ const c = tf.get(term);
354
+ if (!c) continue;
355
+ dot += qw * (c * this.idf(term));
356
+ }
357
+ if (dot > 0) {
358
+ scores.set(node, dot / (qNorm * (this.normByNode.get(node) ?? 1)));
359
+ }
360
+ }
361
+ const out = [];
362
+ for (const [node, score] of scores) out.push({ node, score });
363
+ out.sort((a, b) => b.score - a.score);
364
+ return topK > 0 ? out.slice(0, topK) : out;
365
+ }
366
+ };
367
+
368
+ // packages/feature/explorer/src/server/codeMap/analytics/louvain.ts
369
+ import GraphImport from "graphology";
370
+ import louvainImport from "graphology-communities-louvain";
371
+ var Graph = GraphImport.default ?? GraphImport;
372
+ var louvain = louvainImport.default ?? louvainImport;
373
+ var KEY_SEP = "\0|\0";
374
+ function detectCommunities(graph) {
375
+ if (graph.nodes.size === 0) return /* @__PURE__ */ new Map();
376
+ const g = new Graph({ type: "undirected", multi: false });
377
+ for (const id of graph.nodes.keys()) g.addNode(id);
378
+ const seen = /* @__PURE__ */ new Map();
379
+ for (const [from, edges] of graph.out) {
380
+ for (const e of edges) {
381
+ if (from === e.target) continue;
382
+ const [u, v] = from < e.target ? [from, e.target] : [e.target, from];
383
+ const key = u + KEY_SEP + v;
384
+ seen.set(key, (seen.get(key) ?? 0) + e.weight);
385
+ }
386
+ }
387
+ for (const [key, weight] of seen) {
388
+ const sepIdx = key.indexOf(KEY_SEP);
389
+ if (sepIdx < 0) continue;
390
+ const u = key.slice(0, sepIdx);
391
+ const v = key.slice(sepIdx + KEY_SEP.length);
392
+ g.addEdgeWithKey(key, u, v, { weight });
393
+ }
394
+ const partition = louvain(g);
395
+ const out = /* @__PURE__ */ new Map();
396
+ for (const [id, c] of Object.entries(partition)) out.set(id, c);
397
+ return out;
398
+ }
399
+
400
+ // packages/feature/explorer/src/server/codeMap/analytics/cache.ts
401
+ var PPRLruCache = class {
402
+ constructor(cap) {
403
+ this.map = /* @__PURE__ */ new Map();
404
+ this.cap = cap;
405
+ }
406
+ get(key) {
407
+ const v = this.map.get(key);
408
+ if (!v) return void 0;
409
+ this.map.delete(key);
410
+ this.map.set(key, v);
411
+ return v;
412
+ }
413
+ set(key, value) {
414
+ if (this.map.has(key)) this.map.delete(key);
415
+ this.map.set(key, value);
416
+ if (this.map.size > this.cap) {
417
+ const oldest = this.map.keys().next().value;
418
+ if (oldest !== void 0) this.map.delete(oldest);
419
+ }
420
+ }
421
+ clear() {
422
+ this.map.clear();
423
+ }
424
+ get size() {
425
+ return this.map.size;
426
+ }
427
+ };
428
+ var PPR_CACHE_CAP = 200;
429
+ function pprCacheKey(seeds, opts = {}) {
430
+ const entries = Array.isArray(seeds) ? seeds.map((id) => [id, 1]) : [...seeds.entries()];
431
+ entries.sort((a, b) => a[0].localeCompare(b[0]));
432
+ const damping = opts.damping ?? 0.85;
433
+ const topK = opts.topK ?? 0;
434
+ return `d${damping}|k${topK}|` + entries.map((e) => `${e[0]}=${e[1]}`).join(",");
435
+ }
436
+ function cachedPPR(entry, seeds, opts = {}) {
437
+ const key = pprCacheKey(seeds, opts);
438
+ const hit = entry.pprCache.get(key);
439
+ if (hit) return hit;
440
+ const result = personalizedPageRank(entry.graph, seeds, opts);
441
+ entry.pprCache.set(key, result);
442
+ return result;
443
+ }
444
+ var cache = /* @__PURE__ */ new Map();
445
+ var inflight = /* @__PURE__ */ new Map();
446
+ var versionCounter = 0;
447
+ function getAnalytics(cwd) {
448
+ return cache.get(cwd) ?? null;
449
+ }
450
+ function invalidateAnalytics(cwd) {
451
+ if (!cwd) {
452
+ cache.clear();
453
+ inflight.clear();
454
+ return;
455
+ }
456
+ cache.delete(cwd);
457
+ inflight.delete(cwd);
458
+ }
459
+ function precomputeAnalytics(cwd, index) {
460
+ const pending = inflight.get(cwd);
461
+ if (pending) return pending;
462
+ const p = (async () => {
463
+ const t0 = Date.now();
464
+ versionCounter += 1;
465
+ const version = versionCounter;
466
+ const graph = buildAnalyticsGraph(index, version);
467
+ const pr = pagerank(graph);
468
+ const tf = new TfidfIndex(graph);
469
+ const communities = detectCommunities(graph);
470
+ const entry = {
471
+ cwd,
472
+ version,
473
+ graph,
474
+ pagerank: pr,
475
+ tfidf: tf,
476
+ communities,
477
+ pprCache: new PPRLruCache(PPR_CACHE_CAP),
478
+ builtAt: Date.now(),
479
+ buildMs: Date.now() - t0
480
+ };
481
+ cache.set(cwd, entry);
482
+ inflight.delete(cwd);
483
+ return entry;
484
+ })();
485
+ inflight.set(cwd, p);
486
+ return p;
487
+ }
488
+ function getOrTriggerAnalytics(cwd, index) {
489
+ const hit = cache.get(cwd);
490
+ if (hit) return hit;
491
+ precomputeAnalytics(cwd, index).catch((err) => {
492
+ console.error("[analytics] precompute failed:", err);
493
+ });
494
+ return null;
495
+ }
496
+ export {
497
+ cachedPPR,
498
+ getAnalytics,
499
+ getOrTriggerAnalytics,
500
+ invalidateAnalytics,
501
+ precomputeAnalytics
502
+ };
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  GLOBAL_STATE_FILE,
3
- __export,
4
3
  findCodexSessionPath,
5
4
  findKimiSessionPath,
6
5
  getClaude2SessionPath,
@@ -9,7 +8,10 @@ import {
9
8
  readJsonFile,
10
9
  withFileLock,
11
10
  writeJsonFile
12
- } from "./chunk-TXBVUZVH.mjs";
11
+ } from "./chunk-ZJ6CC3MH.mjs";
12
+ import {
13
+ __export
14
+ } from "./chunk-7P6ASYW6.mjs";
13
15
 
14
16
  // node_modules/effect/dist/esm/Effect.js
15
17
  var Effect_exports = {};