@surething/cockpit 1.0.215 → 1.0.217

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 (66) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +2 -2
  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_client-reference-manifest.js +1 -1
  6. package/.next-prod/server/app/_global-error.html +1 -1
  7. package/.next-prod/server/app/_global-error.rsc +1 -1
  8. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next-prod/server/app/_not-found.html +1 -1
  16. package/.next-prod/server/app/_not-found.rsc +3 -3
  17. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  18. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  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/_not-found.segment.rsc +1 -1
  22. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  24. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  25. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  26. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  27. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  28. package/.next-prod/server/app-paths-manifest.json +2 -2
  29. package/.next-prod/server/chunks/2939.js +1 -1
  30. package/.next-prod/server/chunks/8916.js +1 -1
  31. package/.next-prod/server/chunks/9658.js +5 -5
  32. package/.next-prod/server/chunks/9877.js +10 -1
  33. package/.next-prod/server/functions-config-manifest.json +1 -0
  34. package/.next-prod/server/middleware-build-manifest.js +1 -1
  35. package/.next-prod/server/pages/404.html +1 -1
  36. package/.next-prod/server/pages/500.html +1 -1
  37. package/.next-prod/server/server-reference-manifest.json +1 -1
  38. package/.next-prod/static/chunks/6345-d477b8d5c682b1fb.js +14 -0
  39. package/.next-prod/static/chunks/6917-0a22d7764ca45244.js +29 -0
  40. package/.next-prod/static/chunks/app/{layout-a0362651ba6e6e6f.js → layout-8e3a54b794cb35b6.js} +1 -1
  41. package/.next-prod/static/chunks/app/{project/page-1b14cabf47df9ff7.js → page-3ab0a0f28cbdc8e2.js} +1 -1
  42. package/.next-prod/static/chunks/app/{page-1b14cabf47df9ff7.js → project/page-3ab0a0f28cbdc8e2.js} +1 -1
  43. package/.next-prod/static/css/fc2730c2dbe4866e.css +1 -0
  44. package/.next-prod/trace +13 -13
  45. package/.next-prod/trace-build +1 -1
  46. package/README.md +3 -2
  47. package/README.zh.md +3 -2
  48. package/bin/cock-codegraph.mjs +28 -13
  49. package/bin/cock-connection.mjs +151 -0
  50. package/bin/cock.mjs +12 -1
  51. package/bin/setup-dev.mjs +15 -13
  52. package/dist/{chunk-CZWJPTRO.mjs → chunk-GCYLMG43.mjs} +2486 -1047
  53. package/dist/chunk-O4P2J44N.mjs +314 -0
  54. package/dist/{chunk-KRTISG5I.mjs → chunk-W6G6X3FP.mjs} +196 -9
  55. package/dist/httpApi.mjs +75 -2
  56. package/dist/scheduledTasks.mjs +9 -1158
  57. package/dist/{server-OSOMFNXR.mjs → server-ZBUZ24TC.mjs} +4 -2
  58. package/dist/wsServer.mjs +24 -19
  59. package/package.json +1 -1
  60. package/server.mjs +5 -1
  61. package/.next-prod/static/chunks/5188-415582403ef0e29c.js +0 -29
  62. package/.next-prod/static/chunks/6345-e5ceeb2aeb698eb6.js +0 -14
  63. package/.next-prod/static/css/cc6d733cdf607b30.css +0 -1
  64. package/dist/chunk-ZJ6CC3MH.mjs +0 -223
  65. /package/.next-prod/static/{dtH6UmANw3cgn-jbRuVu4 → 7pu1LXbRRLfg05VN3u39s}/_buildManifest.js +0 -0
  66. /package/.next-prod/static/{dtH6UmANw3cgn-jbRuVu4 → 7pu1LXbRRLfg05VN3u39s}/_ssgManifest.js +0 -0
@@ -25,6 +25,7 @@ import {
25
25
  notifyExitListeners,
26
26
  notifyOutputListeners,
27
27
  readAround,
28
+ readBubbleTitles,
28
29
  readHead,
29
30
  readSince,
30
31
  readTail,
@@ -38,12 +39,12 @@ import {
38
39
  unregisterTerminal,
39
40
  updateBrowserWs,
40
41
  writeStdinToCommand
41
- } from "./chunk-KRTISG5I.mjs";
42
+ } from "./chunk-W6G6X3FP.mjs";
42
43
  import {
43
44
  createNeo4jDriver,
44
45
  runCypherWithDriver,
45
46
  serializeValue
46
- } from "./chunk-ZJ6CC3MH.mjs";
47
+ } from "./chunk-GCYLMG43.mjs";
47
48
  import "./chunk-7P6ASYW6.mjs";
48
49
  export {
49
50
  PtyRingBuffer,
@@ -73,6 +74,7 @@ export {
73
74
  notifyExitListeners,
74
75
  notifyOutputListeners,
75
76
  readAround,
77
+ readBubbleTitles,
76
78
  readHead,
77
79
  readSince,
78
80
  readTail,
package/dist/wsServer.mjs CHANGED
@@ -1,16 +1,6 @@
1
1
  import {
2
- AppError,
3
- Effect_exports,
4
- FSError,
5
- NotFoundError,
6
- PubSub_exports,
7
- Queue_exports,
8
- Schedule_exports,
9
- Stream_exports,
10
- ValidationError,
11
- WSError,
12
2
  getLastUserMessage
13
- } from "./chunk-CZWJPTRO.mjs";
3
+ } from "./chunk-O4P2J44N.mjs";
14
4
  import {
15
5
  addExitListener,
16
6
  addOutputListener,
@@ -26,13 +16,23 @@ import {
26
16
  resolvePendingRequest,
27
17
  unregisterBrowser,
28
18
  writeStdinToCommand
29
- } from "./chunk-KRTISG5I.mjs";
19
+ } from "./chunk-W6G6X3FP.mjs";
30
20
  import {
21
+ AppError,
22
+ Effect_exports,
23
+ FSError,
31
24
  GLOBAL_STATE_FILE,
25
+ NotFoundError,
26
+ PubSub_exports,
27
+ Queue_exports,
32
28
  REVIEW_DIR,
33
29
  REVIEW_SIGNAL_FILE,
30
+ Schedule_exports,
31
+ Stream_exports,
32
+ ValidationError,
33
+ WSError,
34
34
  readJsonFile
35
- } from "./chunk-ZJ6CC3MH.mjs";
35
+ } from "./chunk-GCYLMG43.mjs";
36
36
  import "./chunk-7P6ASYW6.mjs";
37
37
 
38
38
  // src/lib/wsServer.ts
@@ -612,14 +612,14 @@ var runTerminalFollowHandler = (ws, shortId) => {
612
612
 
613
613
  // src/lib/effect/browserHandler.ts
614
614
  var HEARTBEAT3 = Schedule_exports.spaced("30 seconds");
615
- var handleBrowser = (conn, ws, fullId) => Effect_exports.gen(function* () {
615
+ var handleBrowser = (conn, ws, fullId, projectCwd, tabId) => Effect_exports.gen(function* () {
616
616
  if (!fullId) {
617
617
  return yield* Effect_exports.fail(
618
618
  new ValidationError({ field: "fullId", reason: "missing" })
619
619
  );
620
620
  }
621
621
  const shortId = yield* Effect_exports.acquireRelease(
622
- Effect_exports.sync(() => registerBrowser(fullId, ws)),
622
+ Effect_exports.sync(() => registerBrowser(fullId, ws, projectCwd, tabId)),
623
623
  () => Effect_exports.sync(() => unregisterBrowser(fullId))
624
624
  );
625
625
  yield* Effect_exports.logInfo("ws/browser registered").pipe(
@@ -644,11 +644,11 @@ var handleBrowser = (conn, ws, fullId) => Effect_exports.gen(function* () {
644
644
  }).pipe(
645
645
  Effect_exports.withSpan("ws.handleBrowser", { attributes: { fullId } })
646
646
  );
647
- var runBrowserHandler = (ws, fullId) => {
647
+ var runBrowserHandler = (ws, fullId, projectCwd, tabId) => {
648
648
  const program = Effect_exports.scoped(
649
649
  Effect_exports.gen(function* () {
650
650
  const conn = yield* fromWebSocket(ws, "browser");
651
- yield* handleBrowser(conn, ws, fullId);
651
+ yield* handleBrowser(conn, ws, fullId, projectCwd, tabId);
652
652
  })
653
653
  ).pipe(
654
654
  Effect_exports.catchTag(
@@ -683,7 +683,7 @@ var handleJupyter = (conn, bubbleId, cwd) => Effect_exports.gen(function* () {
683
683
  Effect_exports.annotateLogs("cwd", cwd)
684
684
  );
685
685
  const { kernelManager } = yield* Effect_exports.tryPromise({
686
- try: () => import("./server-OSOMFNXR.mjs"),
686
+ try: () => import("./server-ZBUZ24TC.mjs"),
687
687
  catch: (cause) => new AppError({
688
688
  message: "failed to import kernel manager",
689
689
  cause
@@ -3913,7 +3913,12 @@ var wss = g_ws.__cockpitWss ?? (() => {
3913
3913
  } else if (pathname === "/ws/terminal") {
3914
3914
  runTerminalHandler(ws, query.projectCwd);
3915
3915
  } else if (pathname === "/ws/browser") {
3916
- runBrowserHandler(ws, query.fullId);
3916
+ runBrowserHandler(
3917
+ ws,
3918
+ query.fullId,
3919
+ query.projectCwd,
3920
+ query.tabId
3921
+ );
3917
3922
  } else if (pathname === "/ws/terminal-follow") {
3918
3923
  runTerminalFollowHandler(ws, query.id);
3919
3924
  } else if (pathname === "/ws/jupyter") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surething/cockpit",
3
- "version": "1.0.215",
3
+ "version": "1.0.217",
4
4
  "description": "Claude Code GUI for parallel AI coding — drive Claude (default), OpenAI Codex, DeepSeek, Kimi, or local Ollama in tabs. Multi-project sessions, terminal, browser & DB bubbles, code review, slash modes. Local-first, MIT.",
5
5
  "author": "Robert",
6
6
  "license": "MIT",
package/server.mjs CHANGED
@@ -80,7 +80,7 @@ app.prepare().then(async () => {
80
80
  const upgradeHandler = app.getUpgradeHandler();
81
81
  // v2 P8: HTTP intercepts (handleTerminalApi / handleBrowserApi) moved to src/lib/httpApi.ts
82
82
  const { handleUpgrade, broadcastToGlobalState } = await import(dev ? './src/lib/wsServer.ts' : './dist/wsServer.mjs');
83
- const { handleBrowserApi, handleTerminalApi } = await import(dev ? './src/lib/httpApi.ts' : './dist/httpApi.mjs');
83
+ const { handleBrowserApi, handleTerminalApi, handleConnectionApi } = await import(dev ? './src/lib/httpApi.ts' : './dist/httpApi.mjs');
84
84
  const { scheduledTaskManager } = await import(dev ? '@cockpit/feature-agent/server/scheduledTasks' : './dist/scheduledTasks.mjs');
85
85
 
86
86
  // 初始化定时任务管理器
@@ -99,6 +99,10 @@ app.prepare().then(async () => {
99
99
  const handled = await handleTerminalApi(req, res);
100
100
  if (handled) return;
101
101
  }
102
+ if (req.url?.startsWith('/api/connection/') && req.method === 'POST') {
103
+ const handled = await handleConnectionApi(req, res);
104
+ if (handled) return;
105
+ }
102
106
  handle(req, res);
103
107
  });
104
108