@surething/cockpit 1.0.269 → 1.0.271

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 (216) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +4 -4
  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 +1 -1
  146. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  147. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  148. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  150. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  152. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/shutdown/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  156. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/snapshots/blob/route.js.nft.json +1 -1
  158. package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  162. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  164. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  165. package/.next-prod/server/app/api/update/route.js.nft.json +1 -1
  166. package/.next-prod/server/app/api/update-state/route.js.nft.json +1 -1
  167. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  168. package/.next-prod/server/app/apps/[...path]/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  170. package/.next-prod/server/app/m/page.js +1 -1
  171. package/.next-prod/server/app/m/page.js.nft.json +1 -1
  172. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
  173. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  174. package/.next-prod/server/app/page.js +1 -1
  175. package/.next-prod/server/app/page.js.nft.json +1 -1
  176. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  177. package/.next-prod/server/app/project/page.js +1 -1
  178. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  179. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  180. package/.next-prod/server/app/review/[id]/page.js +1 -1
  181. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  182. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  183. package/.next-prod/server/app-paths-manifest.json +4 -4
  184. package/.next-prod/server/chunks/4949.js +1 -1
  185. package/.next-prod/server/chunks/516.js +1 -1
  186. package/.next-prod/server/chunks/5750.js +17 -15
  187. package/.next-prod/server/chunks/{3583.js → 5766.js} +2 -2
  188. package/.next-prod/server/chunks/6548.js +1 -1
  189. package/.next-prod/server/chunks/816.js +2 -2
  190. package/.next-prod/server/middleware-build-manifest.js +1 -1
  191. package/.next-prod/server/pages/404.html +2 -2
  192. package/.next-prod/server/pages/500.html +1 -1
  193. package/.next-prod/server/server-reference-manifest.json +1 -1
  194. package/.next-prod/static/chunks/2302-5e8daad0800c3c02.js +32 -0
  195. package/.next-prod/static/chunks/{7834-2de27facb9789b70.js → 4137-7d6f2498d03b184d.js} +7 -7
  196. package/.next-prod/static/chunks/6784-8e0e9ea22ff4a60f.js +716 -0
  197. package/.next-prod/static/chunks/7184-b6fb5d3287fc073c.js +17 -0
  198. package/.next-prod/static/chunks/app/{layout-405b1999670c618c.js → layout-0782cd43a14c7ee2.js} +1 -1
  199. package/.next-prod/static/chunks/app/m/page-241cf89338a0f255.js +1 -0
  200. package/.next-prod/static/chunks/app/{page-50311a78a8a904dc.js → page-ca2a81ab87931cdb.js} +1 -1
  201. package/.next-prod/static/chunks/app/project/{page-50311a78a8a904dc.js → page-ca2a81ab87931cdb.js} +1 -1
  202. package/.next-prod/static/css/ea27ccfe01ce807c.css +1 -0
  203. package/.next-prod/trace +14 -14
  204. package/.next-prod/trace-build +1 -1
  205. package/README.md +2 -0
  206. package/README.zh.md +2 -0
  207. package/dist/scheduledTasks.mjs +25 -9
  208. package/dist/wsServer.mjs +50 -0
  209. package/package.json +4 -4
  210. package/.next-prod/static/chunks/1321-4ace49c5b06495b2.js +0 -32
  211. package/.next-prod/static/chunks/6784-edb535569846ca9f.js +0 -716
  212. package/.next-prod/static/chunks/6911-6f8ae826c2f21414.js +0 -15
  213. package/.next-prod/static/chunks/app/m/page-2ee6f57860c23456.js +0 -1
  214. package/.next-prod/static/css/6c25a67e895380d0.css +0 -1
  215. /package/.next-prod/static/{M0gKsdd9zyHDCJGVxQAMh → BRgWyE48IVXSuUJ4BLHQb}/_buildManifest.js +0 -0
  216. /package/.next-prod/static/{M0gKsdd9zyHDCJGVxQAMh → BRgWyE48IVXSuUJ4BLHQb}/_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":15005902,"timestamp":578684146,"id":14,"parentId":1,"tags":{},"startTime":1788495156847,"traceId":"d890b4c69e09d4b7"},{"name":"run-typescript","duration":4981789,"timestamp":593695697,"id":1471,"parentId":1,"tags":{},"startTime":1788495171858,"traceId":"d890b4c69e09d4b7"},{"name":"static-check","duration":1366631,"timestamp":598718150,"id":1474,"parentId":1,"tags":{},"startTime":1788495176881,"traceId":"d890b4c69e09d4b7"},{"name":"static-generation","duration":5321119,"timestamp":600247809,"id":1784,"parentId":1,"tags":{},"startTime":1788495178410,"traceId":"d890b4c69e09d4b7"},{"name":"collect-build-traces","duration":24985253,"timestamp":600085530,"id":1781,"parentId":1,"tags":{},"startTime":1788495178248,"traceId":"d890b4c69e09d4b7"},{"name":"telemetry-flush","duration":57,"timestamp":625074596,"id":1793,"parentId":1,"tags":{},"startTime":1788495203237,"traceId":"d890b4c69e09d4b7"},{"name":"next-build","duration":46568909,"timestamp":578505755,"id":1,"tags":{"buildMode":"default","version":"16.3.0","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1788495156668,"traceId":"d890b4c69e09d4b7"}]
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;
@@ -15447,6 +15451,7 @@ var CODEX_MCP_NAMESPACE_PREFIX = "mcp__";
15447
15451
  var codexMcpToolName = (server, tool2) => `${CODEX_MCP_NAMESPACE_PREFIX}${server}__${tool2}`;
15448
15452
  var CODEX_SPAWN_FN_NAME = "spawn_agent";
15449
15453
  var CODEX_SUB_AGENT_ACTIVITY_TYPE = "sub_agent_activity";
15454
+ var CODEX_SUB_AGENT_ACTIVITY_ITEM_TYPE = "SubAgentActivity";
15450
15455
  var CODEX_AGENT_MESSAGE_TYPE = "agent_message";
15451
15456
  var CODEX_PATCH_FN_NAME = "apply_patch";
15452
15457
  var CODEX_EXEC_SCRIPT_FN_NAME = "exec";
@@ -15683,15 +15688,18 @@ function codexAgentPathName(agentPath) {
15683
15688
  return segments[segments.length - 1] || agentPath;
15684
15689
  }
15685
15690
  function parseCodexSubAgentActivity(payload) {
15686
- if (!payload || payload.type !== CODEX_SUB_AGENT_ACTIVITY_TYPE) return null;
15687
- const { event_id: callId, agent_thread_id: agentThreadId } = payload;
15691
+ if (!payload) return null;
15692
+ const item = payload.item;
15693
+ const src = payload.type === CODEX_SUB_AGENT_ACTIVITY_TYPE ? { ...payload, callId: payload.event_id } : item && item.type === CODEX_SUB_AGENT_ACTIVITY_ITEM_TYPE ? { ...item, callId: item.id } : null;
15694
+ if (!src) return null;
15695
+ const { callId, agent_thread_id: agentThreadId } = src;
15688
15696
  if (typeof callId !== "string" || !callId) return null;
15689
15697
  if (typeof agentThreadId !== "string" || !agentThreadId) return null;
15690
15698
  return {
15691
15699
  callId,
15692
15700
  agentThreadId,
15693
- ...typeof payload.agent_path === "string" ? { agentPath: payload.agent_path } : {},
15694
- ...typeof payload.kind === "string" ? { kind: payload.kind } : {}
15701
+ ...typeof src.agent_path === "string" ? { agentPath: src.agent_path } : {},
15702
+ ...typeof src.kind === "string" ? { kind: src.kind } : {}
15695
15703
  };
15696
15704
  }
15697
15705
  function parseCodexAgentMessage(payload) {
@@ -16766,13 +16774,17 @@ var en_default2 = {
16766
16774
  toBlock: "Show code map",
16767
16775
  toCode: "Back to code view"
16768
16776
  },
16777
+ tabs: {
16778
+ toc: "Functions",
16779
+ history: "Trail"
16780
+ },
16769
16781
  toc: {
16770
16782
  title: "this file",
16771
16783
  empty: "No functions detected.",
16772
16784
  notIndexed: "File not in project graph (unsupported language / not in git tracked set / file cap reached)."
16773
16785
  },
16774
16786
  history: {
16775
- title: "history",
16787
+ title: "recent",
16776
16788
  empty: "Click an input or output pin to begin tracing.",
16777
16789
  clear: "Clear history"
16778
16790
  },
@@ -18027,13 +18039,17 @@ var zh_default = {
18027
18039
  toBlock: "\u663E\u793A\u4EE3\u7801\u5730\u56FE",
18028
18040
  toCode: "\u8FD4\u56DE\u4EE3\u7801\u89C6\u56FE"
18029
18041
  },
18042
+ tabs: {
18043
+ toc: "\u51FD\u6570\u5217\u8868",
18044
+ history: "\u8DF3\u8F6C\u8BB0\u5F55"
18045
+ },
18030
18046
  toc: {
18031
18047
  title: "\u672C\u6587\u4EF6",
18032
18048
  empty: "\u672A\u68C0\u6D4B\u5230\u51FD\u6570\u3002",
18033
18049
  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
18050
  },
18035
18051
  history: {
18036
- title: "\u5386\u53F2",
18052
+ title: "\u6700\u8FD1",
18037
18053
  empty: "\u70B9\u51FB\u5DE6\u53F3\u4E24\u4FA7\u7684 pin \u5F00\u59CB\u8FFD\u8E2A\u8C03\u7528\u94FE\u3002",
18038
18054
  clear: "\u6E05\u7A7A\u5386\u53F2"
18039
18055
  },
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.271",
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.260",
108
108
  "@dagrejs/dagre": "^3.0.0",
109
- "@openai/codex-sdk": "0.150.1",
109
+ "@openai/codex-sdk": "0.153.2",
110
110
  "@tanstack/react-virtual": "^3.13.18",
111
111
  "@tiptap/extension-link": "^3.19.0",
112
112
  "@tiptap/extension-placeholder": "^3.19.0",