@surething/cockpit 1.0.251 → 1.0.253

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 (202) 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/prerender-manifest.json +3 -3
  5. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  6. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next-prod/server/app/_global-error.html +1 -1
  8. package/.next-prod/server/app/_global-error.rsc +1 -1
  9. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next-prod/server/app/_not-found/page.js +1 -1
  16. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next-prod/server/app/_not-found.html +2 -2
  19. package/.next-prod/server/app/_not-found.rsc +3 -3
  20. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  21. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  23. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
  27. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  28. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  29. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  30. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  32. package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
  33. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  34. package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
  35. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  37. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  38. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  41. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  44. package/.next-prod/server/app/api/deepseek/credentials/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  48. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  50. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  52. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  54. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  56. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  58. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  60. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  62. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  64. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  66. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
  68. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  70. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  72. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  74. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
  76. package/.next-prod/server/app/api/html-apps/[id]/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/html-apps/route.js.nft.json +1 -1
  78. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  80. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  82. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  84. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  86. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  90. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  92. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  96. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/ollama/config/route.js.nft.json +1 -1
  98. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  102. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  104. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
  108. package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
  110. package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
  114. package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
  116. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
  120. package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  122. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  123. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  124. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  125. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  126. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  128. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  132. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  134. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  138. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  140. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +2 -2
  141. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  142. package/.next-prod/server/app/api/session-by-path/route.js +2 -2
  143. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  144. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  146. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  147. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  150. package/.next-prod/server/app/api/skills/route.js +1 -1
  151. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  152. package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  156. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  158. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/apps/[...path]/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  162. package/.next-prod/server/app/m/page.js +1 -1
  163. package/.next-prod/server/app/m/page.js.nft.json +1 -1
  164. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
  165. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  166. package/.next-prod/server/app/page.js +1 -1
  167. package/.next-prod/server/app/page.js.nft.json +1 -1
  168. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  169. package/.next-prod/server/app/project/page.js +1 -1
  170. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  171. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  172. package/.next-prod/server/app/review/[id]/page.js +1 -1
  173. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  174. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  175. package/.next-prod/server/app-paths-manifest.json +4 -4
  176. package/.next-prod/server/chunks/{6023.js → 293.js} +2 -2
  177. package/.next-prod/server/chunks/4848.js +78 -17
  178. package/.next-prod/server/chunks/5292.js +2 -2
  179. package/.next-prod/server/chunks/6038.js +1 -1
  180. package/.next-prod/server/chunks/9658.js +8 -10
  181. package/.next-prod/server/middleware-build-manifest.js +1 -1
  182. package/.next-prod/server/pages/404.html +2 -2
  183. package/.next-prod/server/pages/500.html +1 -1
  184. package/.next-prod/server/server-reference-manifest.json +1 -1
  185. package/.next-prod/static/chunks/2876-4336c42044f38302.js +25 -0
  186. package/.next-prod/static/chunks/{6784-0a1757d891ff579f.js → 6784-c9969c13c13b25af.js} +0 -0
  187. package/.next-prod/static/chunks/{4473-6877df387a4a05a5.js → 7241-aa9e33a07f5ce517.js} +2 -2
  188. package/.next-prod/static/chunks/9530-27352e6f8bafeb3c.js +15 -0
  189. package/.next-prod/static/chunks/app/{layout-fe0749dfc3651e66.js → layout-145570f39a827c0f.js} +1 -1
  190. package/.next-prod/static/chunks/app/m/{page-03365a5db8980b50.js → page-6c37d1fb9db9b9d6.js} +1 -1
  191. package/.next-prod/static/chunks/app/{page-ce4888a98fda86ff.js → page-487095ac01a4c1ef.js} +1 -1
  192. package/.next-prod/static/chunks/app/project/{page-ce4888a98fda86ff.js → page-487095ac01a4c1ef.js} +1 -1
  193. package/.next-prod/static/css/5aa1c710591e36bb.css +1 -0
  194. package/.next-prod/trace +14 -14
  195. package/.next-prod/trace-build +1 -1
  196. package/dist/scheduledTasks.mjs +78 -17
  197. package/package.json +1 -1
  198. package/.next-prod/static/chunks/4518-ddb1c50646c70ed5.js +0 -25
  199. package/.next-prod/static/chunks/9530-573e8f94413410d4.js +0 -17
  200. package/.next-prod/static/css/940b6d97248df0ed.css +0 -1
  201. /package/.next-prod/static/{43gzI6NymSKUFfFxi94ui → 8aWX4sRFsO4Rx4DD9L9w-}/_buildManifest.js +0 -0
  202. /package/.next-prod/static/{43gzI6NymSKUFfFxi94ui → 8aWX4sRFsO4Rx4DD9L9w-}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":20549523,"timestamp":221977161,"id":14,"parentId":1,"tags":{},"startTime":1785335328205,"traceId":"db92444d1b6f0ad2"},{"name":"run-typescript","duration":18885449,"timestamp":242536911,"id":1661,"parentId":1,"tags":{},"startTime":1785335348765,"traceId":"db92444d1b6f0ad2"},{"name":"static-check","duration":1186655,"timestamp":261472338,"id":1664,"parentId":1,"tags":{},"startTime":1785335367700,"traceId":"db92444d1b6f0ad2"},{"name":"static-generation","duration":6725623,"timestamp":262786018,"id":1950,"parentId":1,"tags":{},"startTime":1785335369014,"traceId":"db92444d1b6f0ad2"},{"name":"collect-build-traces","duration":20544627,"timestamp":262660164,"id":1947,"parentId":1,"tags":{},"startTime":1785335368888,"traceId":"db92444d1b6f0ad2"},{"name":"telemetry-flush","duration":83,"timestamp":283208946,"id":1959,"parentId":1,"tags":{},"startTime":1785335389437,"traceId":"db92444d1b6f0ad2"},{"name":"next-build","duration":61406293,"timestamp":221802749,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1785335328031,"traceId":"db92444d1b6f0ad2"}]
1
+ [{"name":"run-webpack","duration":21924290,"timestamp":168165134,"id":14,"parentId":1,"tags":{},"startTime":1785501364949,"traceId":"044f83021c70dbff"},{"name":"run-typescript","duration":20419986,"timestamp":190093241,"id":1661,"parentId":1,"tags":{},"startTime":1785501386877,"traceId":"044f83021c70dbff"},{"name":"static-check","duration":1230854,"timestamp":210557333,"id":1664,"parentId":1,"tags":{},"startTime":1785501407341,"traceId":"044f83021c70dbff"},{"name":"static-generation","duration":6908014,"timestamp":211960262,"id":1950,"parentId":1,"tags":{},"startTime":1785501408744,"traceId":"044f83021c70dbff"},{"name":"collect-build-traces","duration":21551802,"timestamp":211788838,"id":1947,"parentId":1,"tags":{},"startTime":1785501408573,"traceId":"044f83021c70dbff"},{"name":"telemetry-flush","duration":57,"timestamp":233344869,"id":1959,"parentId":1,"tags":{},"startTime":1785501430129,"traceId":"044f83021c70dbff"},{"name":"next-build","duration":65360154,"timestamp":167984794,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1785501364769,"traceId":"044f83021c70dbff"}]
@@ -509,16 +509,16 @@ description: "\u5B8C\u6574\u4EE3\u7801\u5BA1\u67E5:\u9759\u6001 + \u52A8\u6001\u
509
509
 
510
510
  \u4E24\u6761\u526F\u4F5C\u7528\u7EA2\u7EBF:\u2460 \u4E3B\u4F1A\u8BDD**\u4E0D\u66FF subagent \u505A\u5B9E\u8D28\u5224\u65AD**;\u2461 \u9759\u6001\u62C6\u51FA\u53BB\u8FD8\u987A\u5E26\u6D88\u6389"\u9759\u6001\u5E7F\u5EA6\u644A\u8584\u52A8\u6001\u5EFA\u6A21"\u7684\u4E3B\u7A00\u91CA\u3002
511
511
 
512
- \u6309\u89C4\u6A21\u4E09\u6863(**\u90FD\u81F3\u5C11\u8FDB\u4E00\u4E2A\u5E72\u51C0 subagent**):
512
+ \u6309\u89C4\u6A21\u4E09\u6863(**\u90FD\u81F3\u5C11\u8FDB\u4E00\u4E2A\u5E72\u51C0 subagent**)\u3002**\u524D\u4E24\u6863\u4F60\u81EA\u5DF1\u6309\u89C4\u6A21\u9009;hard \u53EA\u7531\u7528\u6237\u663E\u5F0F\u6307\u5B9A,\u4F60\u4E0D\u5F97\u81EA\u884C\u5347\u6863**\u2014\u2014\u6539\u52A8\u518D\u5927\u3001\u98CE\u9669\u518D\u9AD8,\u7528\u6237\u6CA1\u8BF4 hard \u5C31\u5C01\u9876\u5728\u9ED8\u8BA4\u6863,\u62A5\u544A\u91CC\u4E5F\u4E0D\u8981\u5EFA\u8BAE\u6539\u7528 hard:
513
513
  - **\u5355 subagent**:\u65E0\u52A8\u6001\u9762 / \u6781\u5C0F \u2192 1 \u4E2A\u5E72\u51C0 subagent \u8DD1 Part A\u3002\u4E3B\u4F1A\u8BDD\u53EA\u8F6C\u4EA4 diff + \u6536\u62A5\u544A\u3002
514
514
  - **\u9ED8\u8BA4(2 subagent)**:\u6709\u52A8\u6001\u9762 \u2192 1 \u9759\u6001 + 1 \u52A8\u6001,**\u4E24\u4E2A\u90FD\u5E72\u51C0\u3001\u5E76\u884C**,\u5404\u81EA\u5728\u5E72\u51C0 diff \u4E0A\u81EA\u884C triage(\u9759\u6001\u626B\u5168\u90E8\u6539\u52A8 / \u52A8\u6001\u7528\u5207\u7247\u539F\u578B\u6E05\u5355\u5217\u5168\u5207\u7247)\u3002
515
- - **hard(1 + N subagent)**:\u9AD8\u98CE\u9669 / \u5927\u578B \u2192 \u5148 1 \u4E2A\u5E72\u51C0 triage subagent \u51FA\u5207\u7247\u6E05\u5355,\u636E\u6B64 fan out 1 \u9759\u6001 + \u6BCF\u5207\u7247 1 \u4E2A subagent\u3002\u6700\u6DF1\u3001\u6700\u6162\u3002
515
+ - **hard(1 + N subagent)**:**\u4EC5\u5F53\u7528\u6237\u663E\u5F0F\u8981 hard(\u5982 \`/cr hard\`)** \u2192 \u5148 1 \u4E2A\u5E72\u51C0 triage subagent \u51FA\u5207\u7247\u6E05\u5355,\u636E\u6B64 fan out 1 \u9759\u6001 + \u6BCF\u5207\u7247 1 \u4E2A subagent\u3002\u6700\u6DF1\u3001\u6700\u6162\u3002\u7528\u6237\u70B9\u4E86\u5C31\u7167\u8DD1,\u4E0D\u56E0\u4E3A"\u8FD9\u6B21\u6539\u52A8\u4E0D\u5927"\u81EA\u884C\u964D\u6863;\u771F\u62C6\u4E0D\u51FA\u52A8\u6001\u5207\u7247\u65F6,\u6CE8\u660E"\u65E0\u52A8\u6001\u5207\u7247,per-slice fan-out \u9000\u5316\u4E3A 1 \u9759\u6001"\u5373\u53EF\u3002
516
516
 
517
517
  subagent prompt \u6A21\u677F:\`\u8BFB\u672C skill (cr/SKILL.md),\u53EA\u5BF9 <\u4F60\u90A3\u5757(Part A \u5168\u90E8 / \u67D0\u4E2A\u52A8\u6001\u5207\u7247)> \u5E94\u7528\u5BF9\u5E94 Part,\u81EA\u884C triage,\u6309\u7EDF\u4E00\u683C\u5F0F\u8F93\u51FA findings\`\u3002
518
518
 
519
519
  **Synthesis(\u4E3B\u4F1A\u8BDD,\u53EA\u6574\u7406\u4E0D\u91CD\u5224)**:\u6C47\u603B\u5404 subagent \u7684 findings \u2192 \u53BB\u91CD(\u540C\u6839\u56E0\u6807"\u5171\u72AF")\u2192 \u5F71\u54CD \xD7 \u6982\u7387\u6392\u5E8F \u2192 \u4E00\u4EFD\u62A5\u544A + \u68AF\u5EA6\u56FE\u3002**\u7981\u6B62\u7528\u4E3B\u4F1A\u8BDD\u7684\u5F00\u53D1\u4E0A\u4E0B\u6587\u7ED9\u4EFB\u4F55 finding \u6D17\u767D / \u964D\u7EA7**\u2014\u2014subagent \u600E\u4E48\u5224\u5C31\u600E\u4E48\u6536\u3002\u8981\u8D28\u7591\u67D0\u6761,**\u91CD\u65B0 spawn \u4E00\u4E2A\u5E72\u51C0 subagent \u590D\u6838**,\u800C\u4E0D\u662F\u4E3B\u4F1A\u8BDD\u81EA\u5DF1\u62CD\u3002
520
520
 
521
- > \u53D6\u820D:\u9ED8\u8BA4 2-subagent \u65E2\u9694\u79BB\u5F00\u53D1\u6C61\u67D3\u3001\u53C8\u6D88\u6389\u9759\u6001\u644A\u8584\u52A8\u6001;hard \u7684 per-slice fan-out \u662F\u989D\u5916\u6DF1\u5EA6(\u5B9E\u6D4B\u628A image/video \u6316\u5230 \u{1F534} + \u591A subagent \u72EC\u7ACB\u6536\u655B\u63D0\u7F6E\u4FE1\u5EA6),\u8D35\u4E14\u6162,\u53EA\u5728\u9AD8\u98CE\u9669\u4E0A\u3002
521
+ > \u53D6\u820D:\u9ED8\u8BA4 2-subagent \u65E2\u9694\u79BB\u5F00\u53D1\u6C61\u67D3\u3001\u53C8\u6D88\u6389\u9759\u6001\u644A\u8584\u52A8\u6001;hard \u7684 per-slice fan-out \u662F\u989D\u5916\u6DF1\u5EA6(\u5B9E\u6D4B\u628A image/video \u6316\u5230 \u{1F534} + \u591A subagent \u72EC\u7ACB\u6536\u655B\u63D0\u7F6E\u4FE1\u5EA6),\u8D35\u4E14\u6162,\u7531\u7528\u6237\u663E\u5F0F\u9009\u7528(\u4E0D\u81EA\u52A8\u5347\u6863)\u3002
522
522
 
523
523
  ## Step 1 \u2014 \u5206\u8BCA(triage;\u4E24\u79CD\u6A21\u5F0F\u90FD\u5148\u505A\u8FD9\u6B65)
524
524
  \u8BFB diff,\u5207\u4E24\u9762(\u53EF\u91CD\u53E0):
@@ -655,16 +655,16 @@ Most PR review is static \u2014 read the snapshot and you can judge right/wrong,
655
655
 
656
656
  Two side-effect red lines: \u2460 the main session **does not make substantive judgements on the subagent's behalf**; \u2461 splitting static out also removes the "static breadth dilutes dynamic modelling" dilution of the main thread.
657
657
 
658
- Three tiers by scale (**all enter at least one clean subagent**):
658
+ Three tiers by scale (**all enter at least one clean subagent**). **You pick between the first two by scale yourself; hard is enabled ONLY when the user explicitly asks for it \u2014 never escalate to it on your own** \u2014 however large the diff or however high the risk, without the user saying hard you cap at the default tier, and don't suggest switching to hard in the report either:
659
659
  - **Single subagent**: no dynamic surface / tiny \u2192 1 clean subagent runs Part A. Main session just relays the diff + collects the report.
660
660
  - **Default (2 subagents)**: has a dynamic surface \u2192 1 static + 1 dynamic, **both clean, in parallel**, each triaging on the clean diff itself (static scans all changes / dynamic lists every slice via the slice-archetype checklist).
661
- - **hard (1 + N subagents)**: high-risk / large \u2192 first 1 clean triage subagent produces the slice list, then fan out 1 static + 1 subagent per slice. Deepest, slowest.
661
+ - **hard (1 + N subagents)**: **only when the user explicitly asks for hard (e.g. \`/cr hard\`)** \u2192 first 1 clean triage subagent produces the slice list, then fan out 1 static + 1 subagent per slice. Deepest, slowest. Once the user asks for it, run it as asked \u2014 don't downgrade on your own because "this change is small"; if no dynamic slice can be carved out, just note "no dynamic slice, per-slice fan-out degenerates to 1 static".
662
662
 
663
663
  Subagent prompt template: \`Read this skill (cr/SKILL.md); apply only the matching Part to <your chunk (all of Part A / one dynamic slice)>, triage it yourself, and output findings in the unified format\`.
664
664
 
665
665
  **Synthesis (main session, organize only \u2014 never re-judge)**: gather each subagent's findings \u2192 dedup (mark same-root-cause as "accomplices") \u2192 sort by impact \xD7 probability \u2192 one report + gradient chart. **It is forbidden to use the main session's dev context to whitewash / downgrade any finding** \u2014 take what the subagent judged as-is. To dispute one, **spawn a fresh clean subagent to re-check**, not the main session deciding on its own.
666
666
 
667
- > Trade-off: the default 2-subagent both isolates dev pollution and removes static-dilutes-dynamic; hard's per-slice fan-out is extra depth (in practice it dug image/video up to \u{1F534}, and multiple independently-converging subagents raised confidence), expensive and slow, only for high risk.
667
+ > Trade-off: the default 2-subagent both isolates dev pollution and removes static-dilutes-dynamic; hard's per-slice fan-out is extra depth (in practice it dug image/video up to \u{1F534}, and multiple independently-converging subagents raised confidence), expensive and slow, selected explicitly by the user (never auto-escalated).
668
668
 
669
669
  ## Step 1 \u2014 Triage (do this first in both modes)
670
670
  Read the diff, cut two surfaces (may overlap):
@@ -1629,23 +1629,84 @@ Output confirmation: branch name, current HEAD commit, and sync status against o
1629
1629
  // packages/feature/agent/src/server/lib/qaPrompt.ts
1630
1630
  var QA_PROMPT_ZH = `---
1631
1631
  name: qa
1632
- description: "\u8FDB\u5165\u9700\u6C42\u6F84\u6E05\u8BA8\u8BBA\u6A21\u5F0F\uFF1A\u7406\u89E3\u5E76\u590D\u8FF0\u9700\u6C42\uFF0C\u5BF9\u4E0D\u660E\u786E\u70B9\u56DE\u95EE\u786E\u8BA4\uFF0C\u53EA\u8F93\u51FA\u7406\u89E3\u4E0D\u6539\u4EE3\u7801\uFF0C\u9075\u5FAA KISS\u3002"
1632
+ description: "\u8FDB\u5165\u9700\u6C42\u6F84\u6E05\u8BA8\u8BBA\u6A21\u5F0F\uFF1A\u590D\u8FF0\u5BF9\u9700\u6C42\u7684\u7406\u89E3\uFF0C\u628A\u5F85\u786E\u8BA4\u70B9\u505A\u6210\u5E26\u63A8\u8350\u7B54\u6848\u7684\u9009\u62E9\u9898\u8868\u683C\uFF0C\u53EA\u8F93\u51FA\u7406\u89E3\u4E0D\u6539\u4EE3\u7801\uFF0C\u9075\u5FAA KISS\u3002"
1633
1633
  ---
1634
1634
 
1635
- \u8FDB\u5165\u9700\u6C42\u6F84\u6E05\u8BA8\u8BBA\u6A21\u5F0F
1636
- \u5C1D\u8BD5\u7406\u89E3\u7528\u6237\u7684\u9700\u6C42\u5E76\u7ED9\u51FA\u4F60\u5BF9\u9700\u6C42\u7684\u7406\u89E3\uFF0C\u6709\u4E0D\u660E\u786E\u7684\u70B9\u9700\u8981\u5411\u6211\u786E\u8BA4\uFF0C\u907F\u514D\u7406\u89E3\u4E0D\u4E00\u81F4\u800C\u5BFC\u81F4\u65E0\u6548\u7684\u4EE3\u7801\u4FEE\u6539
1637
- \u9075\u5FAA KISS \u539F\u5219
1638
- \u8F93\u51FA\u7406\u89E3\uFF0C\u4E0D\u6539\u4EE3\u7801`;
1635
+ \u8FDB\u5165\u9700\u6C42\u6F84\u6E05\u8BA8\u8BBA\u6A21\u5F0F\u3002\u76EE\u6807\u662F\u52A8\u4EE3\u7801\u524D\u5BF9\u9F50\u7406\u89E3\uFF0C\u907F\u514D\u56E0\u7406\u89E3\u4E0D\u4E00\u81F4\u5BFC\u81F4\u65E0\u6548\u7684\u4EE3\u7801\u4FEE\u6539\u3002
1636
+
1637
+ ## \u6B65\u9AA4
1638
+
1639
+ 1. \u590D\u8FF0\u7406\u89E3\uFF1A\u51E0\u53E5\u8BDD\u8BF4\u6E05\u6539\u54EA\u91CC\u3001\u6539\u4EC0\u4E48\u3001\u73B0\u72B6\u662F\u4EC0\u4E48\u3002\u5148\u8BFB\u4EE3\u7801\u786E\u8BA4\u73B0\u72B6\u518D\u590D\u8FF0\uFF0C\u4E0D\u8981\u51ED\u731C\u6D4B\u2014\u2014\u731C\u9519\u7684\u590D\u8FF0\u6BD4\u4E0D\u590D\u8FF0\u66F4\u6D6A\u8D39\u8F6E\u6B21\u3002
1640
+ 2. \u5217\u5F85\u786E\u8BA4\u70B9\uFF1A\u505A\u6210\u9009\u62E9\u9898\u8868\u683C\uFF08\u683C\u5F0F\u89C1\u4E0B\uFF09\u3002
1641
+ 3. \u505C\u4E0B\u7B49\u786E\u8BA4\uFF1A\u4E0D\u6539\u4EE3\u7801\uFF0C\u7B49\u7528\u6237\u56DE\u590D\u518D\u52A8\u624B\u3002
1642
+
1643
+ ## \u5F85\u786E\u8BA4\u70B9\u8868\u683C
1644
+
1645
+ \u5FC5\u987B\u7528\u8868\u683C\uFF0C\u6BCF\u4E2A\u70B9\u5FC5\u987B\u7ED9\u51FA\u5177\u4F53\u9009\u9879\u548C\u63A8\u8350\u7B54\u6848\u3002\u8BA9\u7528\u6237\u56DE\u4E00\u4E2A\u5B57\u6BCD\u5C31\u80FD\u5B9A\u7A3F\uFF0C\u800C\u4E0D\u662F\u56DE\u7B54\u5F00\u653E\u5F0F\u95EE\u9898\u3002
1646
+
1647
+ | # | \u5F85\u786E\u8BA4\u70B9 | \u9009\u9879 | \u63A8\u8350 | \u7406\u7531 |
1648
+ |---|---|---|---|---|
1649
+ | 1 | <\u8981\u5B9A\u7684\u90A3\u4E2A\u51B3\u7B56> | A <\u505A\u6CD5\u4E00><br>B <\u505A\u6CD5\u4E8C><br>C <\u505A\u6CD5\u4E09> | **A** | <\u4E3A\u4EC0\u4E48\u4E0D\u9009 B / C\uFF0C\u4E00\u53E5\u8BDD\u53D6\u820D> |
1650
+ | 2 | <\u8981\u5B9A\u7684\u90A3\u4E2A\u51B3\u7B56> | A <\u505A\u6CD5\u4E00><br>B <\u505A\u6CD5\u4E8C> | **B** | <\u4E3A\u4EC0\u4E48\u4E0D\u9009 A\uFF0C\u4E00\u53E5\u8BDD\u53D6\u820D> |
1651
+
1652
+ \u8868\u683C\u540E\u9762\u8DDF\u4E00\u53E5\uFF1A\u300C\u76F4\u63A5\u56DE 1A 2B\uFF0C\u6216\u56DE\u300E\u90FD\u6309\u63A8\u8350\u300F\u300D\u3002
1653
+
1654
+ \u89C4\u5219\uFF1A
1655
+ - \u9009\u9879\u4E00\u884C\u4E00\u4E2A\uFF0C\u7528 <br> \u5206\u9694\uFF0C\u4E0D\u8981\u7528\u659C\u6760\u6324\u5728\u4E00\u884C\u2014\u2014\u9009\u9879\u8D8A\u957F\uFF0C\u6324\u6210\u4E00\u884C\u8D8A\u96BE\u6BD4\u5BF9\u3002
1656
+ - \u9009\u9879\u4E92\u65A5\u4E14\u7A77\u5C3D\uFF0C\u6700\u591A 3 \u4E2A\u3002\u60F3\u4E0D\u51FA\u7B2C\u4E8C\u4E2A\u9009\u9879\uFF0C\u8BF4\u660E\u5B83\u4E0D\u662F\u5F85\u786E\u8BA4\u70B9\u2014\u2014\u522B\u51D1\u6570\u3002
1657
+ - \u63A8\u8350\u5217\u5FC5\u987B\u586B\uFF0C\u4E0D\u80FD\u5199\u300C\u770B\u4F60\u300D\u300C\u90FD\u884C\u300D\u3002
1658
+ - \u7406\u7531\u4E00\u53E5\u8BDD\uFF0C\u8BB2\u53D6\u820D\uFF08\u4E3A\u4EC0\u4E48\u4E0D\u9009\u53E6\u4E00\u4E2A\uFF09\uFF0C\u4E0D\u8BB2\u529F\u80FD\u662F\u4EC0\u4E48\u3002
1659
+ - \u786C\u7EA6\u675F\u5355\u72EC\u5199\uFF1A\u5982\u679C\u67D0\u4E2A\u9009\u9879\u4F1A\u8FDE\u5E26\u8E29\u5751\uFF08\u6709\u5199\u6B7B\u7684\u5E38\u91CF\u4F9D\u8D56\u3001\u6539\u4E86\u8FD9\u91CC\u4F1A\u8BA9\u522B\u5904\u5931\u6548\uFF09\uFF0C\u5355\u5F00\u4E00\u4E2A\u5C0F\u8868\u6216\u6BB5\u843D\u8BB2\u6E05\u695A\uFF0C\u4E0D\u8981\u585E\u8FDB\u7406\u7531\u5217\u2014\u2014\u90A3\u662F\u51B3\u7B56\u4F9D\u636E\uFF0C\u4E0D\u662F\u7406\u7531\u3002
1660
+
1661
+ ## \u8FB9\u754C
1662
+
1663
+ - \u53EA\u8F93\u51FA\u7406\u89E3\uFF0C\u4E0D\u6539\u4EE3\u7801\u3001\u4E0D\u5199\u6587\u4EF6\u3001\u4E0D\u8DD1\u6539\u52A8\u6027\u547D\u4EE4\u3002\u8BFB\u4EE3\u7801\u786E\u8BA4\u73B0\u72B6\u662F\u5141\u8BB8\u4E14\u9F13\u52B1\u7684\u3002
1664
+ - \u9075\u5FAA KISS \u539F\u5219\uFF1A\u53EA\u5217\u771F\u6B63\u5F71\u54CD\u5B9E\u73B0\u65B9\u5411\u7684\u70B9\u3002\u80FD\u81EA\u5DF1\u67E5\u6E05\u695A\u7684\u81EA\u5DF1\u67E5\uFF0C\u4E0D\u8981\u4E3A\u4E86\u663E\u5F97\u5468\u5168\u800C\u5806\u786E\u8BA4\u70B9\u3002
1665
+ - \u6CA1\u6709\u4E0D\u660E\u786E\u7684\u70B9\uFF0C\u76F4\u63A5\u8BF4\u300C\u7406\u89E3\u65E0\u6B67\u4E49\uFF0C\u53EF\u4EE5\u5F00\u59CB\u300D\uFF0C\u4E0D\u8981\u786C\u51D1\u8868\u683C\u3002
1666
+
1667
+ ## \u9A8C\u8BC1
1668
+
1669
+ \u7528\u6237\u80FD\u53EA\u56DE\u5B57\u6BCD\u6216\u300C\u90FD\u6309\u63A8\u8350\u300D\u5C31\u8FDB\u5165\u5B9E\u73B0\uFF0C\u8BF4\u660E\u8FD9\u6B21\u6F84\u6E05\u662F\u5408\u683C\u7684\uFF1B\u5982\u679C\u7528\u6237\u8FD8\u5F97\u8865\u4E00\u6BB5\u6563\u6587\u89E3\u91CA\uFF0C\u8BF4\u660E\u9009\u9879\u6CA1\u7A77\u5C3D\u6216\u63A8\u8350\u6CA1\u7ED9\u5230\u4F4D\u3002`;
1639
1670
  var QA_PROMPT_EN = `---
1640
1671
  name: qa
1641
- description: "Enter requirement clarification mode: understand and restate the need, ask back on ambiguities, output understanding only without modifying code, follow KISS."
1672
+ description: "Enter requirement clarification mode: restate your understanding, turn open questions into a multiple-choice table with a recommended answer for each, output understanding only without modifying code, follow KISS."
1642
1673
  ---
1643
1674
 
1644
- Enter requirement clarification mode.
1645
- Understand the user's needs and state your understanding.
1646
- Ask for clarification on ambiguous points to avoid unnecessary code changes.
1647
- Follow the KISS principle.
1648
- Output your understanding only; do not modify code.`;
1675
+ Enter requirement clarification mode. The goal is to align on intent before touching code, so a misread requirement never turns into wasted changes.
1676
+
1677
+ ## Steps
1678
+
1679
+ 1. Restate your understanding: a few sentences on what changes, where, and what the current behaviour is. Read the code to confirm the current state first \u2014 a restatement built on a guess wastes more turns than no restatement at all.
1680
+ 2. List the open questions as a multiple-choice table (format below).
1681
+ 3. Stop and wait: do not modify code until the user answers.
1682
+
1683
+ ## Open-questions table
1684
+
1685
+ Always use a table, and always give every question concrete options plus a recommendation. The user should be able to lock the design by replying with letters, not by answering open-ended prose questions.
1686
+
1687
+ | # | Question | Options | Recommend | Why |
1688
+ |---|---|---|---|---|
1689
+ | 1 | <the decision to settle> | A <option one><br>B <option two><br>C <option three> | **A** | <why not B / C \u2014 one line of trade-off> |
1690
+ | 2 | <the decision to settle> | A <option one><br>B <option two> | **B** | <why not A \u2014 one line of trade-off> |
1691
+
1692
+ Follow the table with: "Reply 1A 2B, or say 'all as recommended'".
1693
+
1694
+ Rules:
1695
+ - One option per line, separated by <br> \u2014 never slash-joined on a single line. The longer the options, the harder a single line is to compare.
1696
+ - Options must be mutually exclusive and exhaustive, at most 3. If you cannot name a second option, it was never an open question \u2014 do not pad the table.
1697
+ - The Recommend column must always be filled. Never "up to you" or "either works".
1698
+ - Keep Why to one line about the trade-off (why not the other option), not a description of the feature.
1699
+ - Put hard constraints in their own table or paragraph: if an option drags a hidden cost along (a hardcoded constant depends on it, changing this breaks that), spell it out separately. It is decision input, not a reason cell.
1700
+
1701
+ ## Boundaries
1702
+
1703
+ - Output understanding only: do not modify code, write files, or run mutating commands. Reading code to confirm the current state is allowed and encouraged.
1704
+ - Follow the KISS principle: list only what genuinely changes the implementation direction. Anything you can settle by looking it up, look it up.
1705
+ - If nothing is ambiguous, just say so and offer to start \u2014 do not manufacture a table.
1706
+
1707
+ ## Verification
1708
+
1709
+ If the user can reply with only letters or "all as recommended" and you can start implementing, the clarification was good. If they have to write a paragraph back, your options were not exhaustive or your recommendation was missing.`;
1649
1710
 
1650
1711
  // packages/feature/agent/src/server/lib/skillifyPrompt.ts
1651
1712
  var SKILLIFY_PROMPT_ZH = `---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surething/cockpit",
3
- "version": "1.0.251",
3
+ "version": "1.0.253",
4
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.",
5
5
  "author": "Robert",
6
6
  "license": "MIT",