@surething/cockpit 1.0.269 → 1.0.270

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 (214) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +6 -6
  3. package/.next-prod/build-manifest.json +2 -2
  4. package/.next-prod/cockpit-build.json +1 -1
  5. package/.next-prod/prerender-manifest.json +3 -3
  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 +1 -1
  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/_tree.segment.rsc +1 -1
  13. package/.next-prod/server/app/_not-found/page.js +1 -1
  14. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next-prod/server/app/_not-found.html +2 -2
  17. package/.next-prod/server/app/_not-found.rsc +3 -3
  18. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  19. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  20. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
  23. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  24. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  25. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  26. package/.next-prod/server/app/api/chat/glm/route.js.nft.json +1 -1
  27. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  28. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  29. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  30. package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  32. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  33. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  34. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  35. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  37. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  38. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/deepseek/balance/route.js.nft.json +1 -1
  41. package/.next-prod/server/app/api/deepseek/credentials/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/deepseek/models/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
  44. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  48. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  50. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  52. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  54. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  56. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  58. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  60. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/git/blob/route.js.nft.json +1 -1
  62. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  64. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  66. package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  68. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  70. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  72. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/glm/credentials/route.js.nft.json +1 -1
  74. package/.next-prod/server/app/api/glm/models/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/glm/usage/route.js.nft.json +1 -1
  76. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
  78. package/.next-prod/server/app/api/html-apps/[id]/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/html-apps/route.js.nft.json +1 -1
  80. package/.next-prod/server/app/api/kimi/credentials/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/kimi/models/route.js.nft.json +1 -1
  82. package/.next-prod/server/app/api/kimi/usage/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  84. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  86. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  90. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  92. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  96. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  98. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/ollama/config/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  102. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  104. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  108. package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
  110. package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  114. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
  116. package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  120. package/.next-prod/server/app/api/prompts/config/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
  122. package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
  123. package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
  124. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  125. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  126. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  128. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/restart/route.js.nft.json +1 -1
  132. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  134. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  138. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  140. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  141. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  142. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  143. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  144. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  146. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  147. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  150. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  152. package/.next-prod/server/app/api/shutdown/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  156. package/.next-prod/server/app/api/snapshots/blob/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
  158. package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  162. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  164. package/.next-prod/server/app/api/update/route.js.nft.json +1 -1
  165. package/.next-prod/server/app/api/update-state/route.js.nft.json +1 -1
  166. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  167. package/.next-prod/server/app/apps/[...path]/route.js.nft.json +1 -1
  168. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/m/page.js +1 -1
  170. package/.next-prod/server/app/m/page.js.nft.json +1 -1
  171. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
  172. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  173. package/.next-prod/server/app/page.js +1 -1
  174. package/.next-prod/server/app/page.js.nft.json +1 -1
  175. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  176. package/.next-prod/server/app/project/page.js +1 -1
  177. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  178. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  179. package/.next-prod/server/app/review/[id]/page.js +1 -1
  180. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  181. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  182. package/.next-prod/server/app-paths-manifest.json +6 -6
  183. package/.next-prod/server/chunks/4949.js +1 -1
  184. package/.next-prod/server/chunks/5750.js +14 -14
  185. package/.next-prod/server/chunks/{3583.js → 5766.js} +2 -2
  186. package/.next-prod/server/chunks/6548.js +1 -1
  187. package/.next-prod/server/chunks/816.js +2 -2
  188. package/.next-prod/server/middleware-build-manifest.js +1 -1
  189. package/.next-prod/server/pages/404.html +2 -2
  190. package/.next-prod/server/pages/500.html +1 -1
  191. package/.next-prod/server/server-reference-manifest.json +1 -1
  192. package/.next-prod/static/chunks/2302-ebf06ca1396efcce.js +32 -0
  193. package/.next-prod/static/chunks/{7834-2de27facb9789b70.js → 4137-7d6f2498d03b184d.js} +7 -7
  194. package/.next-prod/static/chunks/6784-8e0e9ea22ff4a60f.js +716 -0
  195. package/.next-prod/static/chunks/7184-efdf8613e83ae823.js +15 -0
  196. package/.next-prod/static/chunks/app/{layout-405b1999670c618c.js → layout-0782cd43a14c7ee2.js} +1 -1
  197. package/.next-prod/static/chunks/app/m/page-0304eea2c0cf03f6.js +1 -0
  198. package/.next-prod/static/chunks/app/{page-50311a78a8a904dc.js → page-ca2a81ab87931cdb.js} +1 -1
  199. package/.next-prod/static/chunks/app/project/{page-50311a78a8a904dc.js → page-ca2a81ab87931cdb.js} +1 -1
  200. package/.next-prod/static/css/4e29dd2bca2bb1ac.css +1 -0
  201. package/.next-prod/trace +14 -14
  202. package/.next-prod/trace-build +1 -1
  203. package/README.md +2 -0
  204. package/README.zh.md +2 -0
  205. package/dist/scheduledTasks.mjs +17 -5
  206. package/dist/wsServer.mjs +50 -0
  207. package/package.json +4 -4
  208. package/.next-prod/static/chunks/1321-4ace49c5b06495b2.js +0 -32
  209. package/.next-prod/static/chunks/6784-edb535569846ca9f.js +0 -716
  210. package/.next-prod/static/chunks/6911-6f8ae826c2f21414.js +0 -15
  211. package/.next-prod/static/chunks/app/m/page-2ee6f57860c23456.js +0 -1
  212. package/.next-prod/static/css/6c25a67e895380d0.css +0 -1
  213. /package/.next-prod/static/{M0gKsdd9zyHDCJGVxQAMh → cqNAEj5KI8Y8li81B5f7n}/_buildManifest.js +0 -0
  214. /package/.next-prod/static/{M0gKsdd9zyHDCJGVxQAMh → cqNAEj5KI8Y8li81B5f7n}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":15682113,"timestamp":162307547,"id":14,"parentId":1,"tags":{},"startTime":1788144765746,"traceId":"2088da50d4ab2974"},{"name":"run-typescript","duration":4524709,"timestamp":177993989,"id":1471,"parentId":1,"tags":{},"startTime":1788144781432,"traceId":"2088da50d4ab2974"},{"name":"static-check","duration":1257420,"timestamp":182548813,"id":1474,"parentId":1,"tags":{},"startTime":1788144785987,"traceId":"2088da50d4ab2974"},{"name":"static-generation","duration":4897830,"timestamp":183917337,"id":1784,"parentId":1,"tags":{},"startTime":1788144787356,"traceId":"2088da50d4ab2974"},{"name":"collect-build-traces","duration":22257954,"timestamp":183806898,"id":1781,"parentId":1,"tags":{},"startTime":1788144787245,"traceId":"2088da50d4ab2974"},{"name":"telemetry-flush","duration":50,"timestamp":206068353,"id":1793,"parentId":1,"tags":{},"startTime":1788144809507,"traceId":"2088da50d4ab2974"},{"name":"next-build","duration":43891342,"timestamp":162177073,"id":1,"tags":{"buildMode":"default","version":"16.3.0","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1788144765615,"traceId":"2088da50d4ab2974"}]
1
+ [{"name":"run-webpack","duration":9860825,"timestamp":110957788,"id":14,"parentId":1,"tags":{},"startTime":1788407386128,"traceId":"ac195e55564dfaec"},{"name":"run-typescript","duration":2970411,"timestamp":120821256,"id":1471,"parentId":1,"tags":{},"startTime":1788407395992,"traceId":"ac195e55564dfaec"},{"name":"static-check","duration":771496,"timestamp":123820166,"id":1474,"parentId":1,"tags":{},"startTime":1788407398991,"traceId":"ac195e55564dfaec"},{"name":"static-generation","duration":3190428,"timestamp":124650080,"id":1784,"parentId":1,"tags":{},"startTime":1788407399821,"traceId":"ac195e55564dfaec"},{"name":"collect-build-traces","duration":13041330,"timestamp":124592156,"id":1781,"parentId":1,"tags":{},"startTime":1788407399763,"traceId":"ac195e55564dfaec"},{"name":"telemetry-flush","duration":35,"timestamp":137635780,"id":1793,"parentId":1,"tags":{},"startTime":1788407412806,"traceId":"ac195e55564dfaec"},{"name":"next-build","duration":26782282,"timestamp":110853541,"id":1,"tags":{"buildMode":"default","version":"16.3.0","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1788407386024,"traceId":"ac195e55564dfaec"}]
package/README.md CHANGED
@@ -315,6 +315,8 @@ Next.js 16 · React 19 · TypeScript · TailwindCSS · xterm.js · node-pty · S
315
315
 
316
316
  Issues and PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) and the [OpenCockpit docs](https://opencockpit.dev/en/docs/).
317
317
 
318
+ Questions, ideas, or show-and-tell: join the community at [r/opencockpit](https://www.reddit.com/r/opencockpit/).
319
+
318
320
  ## License
319
321
 
320
322
  [MIT](LICENSE) © Surething
package/README.zh.md CHANGED
@@ -304,6 +304,8 @@ Next.js 16 · React 19 · TypeScript · TailwindCSS · xterm.js · node-pty · S
304
304
 
305
305
  欢迎 Issue 和 PR。详见 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [OpenCockpit 文档](https://opencockpit.dev/zh/docs/)。
306
306
 
307
+ 提问、想法或作品分享,欢迎加入社区 [r/opencockpit](https://www.reddit.com/r/opencockpit/)。
308
+
307
309
  ## 许可证
308
310
 
309
311
  [MIT](LICENSE) © Surething
@@ -543,7 +543,11 @@ async function runSdkLoop(ctx, buildOptions) {
543
543
  if (msg.type === "system" && msg.subtype === "init" && msg.session_id) {
544
544
  ctx.rekey(msg.session_id);
545
545
  }
546
- if (msg.type === "system" && msg.subtype === "task_started" && msg.task_id) {
546
+ if (msg.type === "system" && msg.subtype === "background_tasks_changed") {
547
+ pendingTasks.clear();
548
+ for (const t of msg.tasks ?? []) if (!t.ambient) pendingTasks.add(t.task_id);
549
+ }
550
+ if (msg.type === "system" && msg.subtype === "task_started" && msg.task_id && !msg.ambient) {
547
551
  pendingTasks.add(msg.task_id);
548
552
  }
549
553
  if (msg.type === "system" && msg.subtype === "task_notification" && msg.task_id) {
@@ -562,8 +566,8 @@ async function runSdkLoop(ctx, buildOptions) {
562
566
  var PLAN_EDIT_TOOLS = /* @__PURE__ */ new Set(["Write", "Edit", "MultiEdit", "NotebookEdit"]);
563
567
  var isPlanFilePath = (p) => /(^|\/)\.claude\/plans\//.test(p);
564
568
  var CLAUDE_SDK_EFFORTS = /* @__PURE__ */ new Set(["low", "medium", "high", "xhigh", "max"]);
565
- var CLAUDE_ULTRACODE_MODELS = /* @__PURE__ */ new Set(["claude-fable-5", "claude-opus-5", "claude-opus-4-8"]);
566
- var CLAUDE_XHIGH_MODELS = /* @__PURE__ */ new Set(["claude-fable-5", "claude-opus-5", "claude-opus-4-8", "claude-sonnet-5"]);
569
+ var CLAUDE_ULTRACODE_MODELS = /* @__PURE__ */ new Set(["claude-fable-5-1", "claude-fable-5", "claude-opus-5", "claude-opus-4-8"]);
570
+ var CLAUDE_XHIGH_MODELS = /* @__PURE__ */ new Set(["claude-fable-5-1", "claude-fable-5", "claude-opus-5", "claude-opus-4-8", "claude-sonnet-5"]);
567
571
  function resolveClaudeModel(ctx) {
568
572
  const model = typeof ctx.params.model === "string" && ctx.params.model.trim() ? ctx.params.model.trim() : void 0;
569
573
  if (!model) return void 0;
@@ -16766,13 +16770,17 @@ var en_default2 = {
16766
16770
  toBlock: "Show code map",
16767
16771
  toCode: "Back to code view"
16768
16772
  },
16773
+ tabs: {
16774
+ toc: "Functions",
16775
+ history: "Trail"
16776
+ },
16769
16777
  toc: {
16770
16778
  title: "this file",
16771
16779
  empty: "No functions detected.",
16772
16780
  notIndexed: "File not in project graph (unsupported language / not in git tracked set / file cap reached)."
16773
16781
  },
16774
16782
  history: {
16775
- title: "history",
16783
+ title: "recent",
16776
16784
  empty: "Click an input or output pin to begin tracing.",
16777
16785
  clear: "Clear history"
16778
16786
  },
@@ -18027,13 +18035,17 @@ var zh_default = {
18027
18035
  toBlock: "\u663E\u793A\u4EE3\u7801\u5730\u56FE",
18028
18036
  toCode: "\u8FD4\u56DE\u4EE3\u7801\u89C6\u56FE"
18029
18037
  },
18038
+ tabs: {
18039
+ toc: "\u51FD\u6570\u5217\u8868",
18040
+ history: "\u8DF3\u8F6C\u8BB0\u5F55"
18041
+ },
18030
18042
  toc: {
18031
18043
  title: "\u672C\u6587\u4EF6",
18032
18044
  empty: "\u672A\u68C0\u6D4B\u5230\u51FD\u6570\u3002",
18033
18045
  notIndexed: "\u8BE5\u6587\u4EF6\u672A\u88AB\u9879\u76EE\u56FE\u6536\u5F55\uFF08\u6269\u5C55\u672A\u652F\u6301 / \u4E0D\u5728 git \u8DDF\u8E2A\u96C6 / \u8D85\u51FA\u6587\u4EF6\u4E0A\u9650\uFF09\u3002"
18034
18046
  },
18035
18047
  history: {
18036
- title: "\u5386\u53F2",
18048
+ title: "\u6700\u8FD1",
18037
18049
  empty: "\u70B9\u51FB\u5DE6\u53F3\u4E24\u4FA7\u7684 pin \u5F00\u59CB\u8FFD\u8E2A\u8C03\u7528\u94FE\u3002",
18038
18050
  clear: "\u6E05\u7A7A\u5386\u53F2"
18039
18051
  },
package/dist/wsServer.mjs CHANGED
@@ -2041,6 +2041,40 @@ function extractImportHeader(rootNode) {
2041
2041
  children: []
2042
2042
  };
2043
2043
  }
2044
+ function absorbLeadingComments(rootNode, symbols) {
2045
+ const commentByEndLine = /* @__PURE__ */ new Map();
2046
+ for (let i = 0; i < rootNode.namedChildCount; i++) {
2047
+ const c = rootNode.namedChild(i);
2048
+ if (!c || !c.type.endsWith("comment")) continue;
2049
+ commentByEndLine.set(c.endPosition.row + 1, c);
2050
+ }
2051
+ if (commentByEndLine.size === 0) return;
2052
+ const covered = /* @__PURE__ */ new Set();
2053
+ for (const s of symbols) {
2054
+ for (let i = s.startLine; i <= s.endLine; i++) covered.add(i);
2055
+ }
2056
+ for (const s of symbols) {
2057
+ if (s.kind === "unknown") continue;
2058
+ let start = s.startLine;
2059
+ for (; ; ) {
2060
+ const c = commentByEndLine.get(start - 1);
2061
+ if (!c) break;
2062
+ const cStart = c.startPosition.row + 1;
2063
+ let blocked = false;
2064
+ for (let i = cStart; i <= start - 1; i++) {
2065
+ if (covered.has(i)) {
2066
+ blocked = true;
2067
+ break;
2068
+ }
2069
+ }
2070
+ if (blocked) break;
2071
+ start = cStart;
2072
+ }
2073
+ if (start === s.startLine) continue;
2074
+ for (let i = start; i < s.startLine; i++) covered.add(i);
2075
+ s.startLine = start;
2076
+ }
2077
+ }
2044
2078
  function computeFillerBlocks(rootNode, existing) {
2045
2079
  const source = rootNode.text;
2046
2080
  const lines = source.split("\n");
@@ -2094,9 +2128,23 @@ function extractSymbolsFromTree(rootNode) {
2094
2128
  const child = rootNode.namedChild(i);
2095
2129
  if (child) out.push(...extractFromNode(child, void 0, false));
2096
2130
  }
2131
+ absorbLeadingComments(rootNode, out);
2097
2132
  out.push(...computeFillerBlocks(rootNode, out));
2133
+ dedupeQualifiedNames(out);
2098
2134
  return out;
2099
2135
  }
2136
+ function dedupeQualifiedNames(syms) {
2137
+ const seen = /* @__PURE__ */ new Map();
2138
+ const walk = (arr) => {
2139
+ for (const s of arr) {
2140
+ const n = (seen.get(s.qualifiedName) ?? 0) + 1;
2141
+ seen.set(s.qualifiedName, n);
2142
+ if (n > 1) s.qualifiedName = `${s.qualifiedName}#${n}`;
2143
+ walk(s.children);
2144
+ }
2145
+ };
2146
+ walk(syms);
2147
+ }
2100
2148
 
2101
2149
  // packages/feature/explorer/src/server/codeMap/extractCalls.ts
2102
2150
  function extractRawCalls(root) {
@@ -3234,6 +3282,7 @@ var goHandler = {
3234
3282
  if (header) out.push(header);
3235
3283
  const { symbols, pendingMethods } = extractTopLevel(rootNode);
3236
3284
  out.push(...attachMethods(symbols, pendingMethods));
3285
+ absorbLeadingComments(rootNode, out);
3237
3286
  out.push(...computeFillerBlocks(rootNode, out));
3238
3287
  return out;
3239
3288
  },
@@ -3932,6 +3981,7 @@ var rustHandler = {
3932
3981
  if (header) out.push(header);
3933
3982
  const { symbols, pendingImpls } = extractTopLevel2(rootNode);
3934
3983
  out.push(...attachImplMethods(symbols, pendingImpls));
3984
+ absorbLeadingComments(rootNode, out);
3935
3985
  out.push(...computeFillerBlocks(rootNode, out));
3936
3986
  return out;
3937
3987
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@surething/cockpit",
3
- "version": "1.0.269",
4
- "description": "The open-source Claude Code GUI — an IDE-like workbench for parallel AI coding. Drive Claude (default), Codex, DeepSeek, Kimi, or local Ollama in tabs. Terminal, browser & DB bubbles, code review. Self-host on a shared dev box — a seat for every teammate. Local-first, MIT.",
3
+ "version": "1.0.270",
4
+ "description": "OpenCockpit is the open-source Claude Code GUI — an IDE-like workbench for parallel AI coding. Drive Claude (default), Codex, DeepSeek, Kimi, or local Ollama in tabs. Terminal, browser & DB bubbles, code review. Self-host on a shared dev box — a seat for every teammate. Local-first, MIT.",
5
5
  "author": "Robert",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -104,9 +104,9 @@
104
104
  },
105
105
  "dependencies": {
106
106
  "@ai-sdk/openai": "^3.0.52",
107
- "@anthropic-ai/claude-agent-sdk": "0.3.250",
107
+ "@anthropic-ai/claude-agent-sdk": "0.3.259",
108
108
  "@dagrejs/dagre": "^3.0.0",
109
- "@openai/codex-sdk": "0.150.1",
109
+ "@openai/codex-sdk": "0.153.0",
110
110
  "@tanstack/react-virtual": "^3.13.18",
111
111
  "@tiptap/extension-link": "^3.19.0",
112
112
  "@tiptap/extension-placeholder": "^3.19.0",