@surething/cockpit 1.0.216 → 1.0.218
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.
- package/.next-prod/BUILD_ID +1 -1
- package/.next-prod/app-path-routes-manifest.json +2 -2
- package/.next-prod/build-manifest.json +2 -2
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_global-error.html +1 -1
- package/.next-prod/server/app/_global-error.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +1 -1
- package/.next-prod/server/app/_not-found.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
- package/.next-prod/server/app/api/chat/route.js +1 -1
- package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +2 -2
- package/.next-prod/server/chunks/2939.js +1 -1
- package/.next-prod/server/chunks/8916.js +1 -1
- package/.next-prod/server/chunks/9658.js +7 -7
- package/.next-prod/server/chunks/9877.js +1 -1
- package/.next-prod/server/functions-config-manifest.json +1 -0
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +1 -1
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/chunks/6345-2637497e8b101740.js +14 -0
- package/.next-prod/static/chunks/6917-ed0e9c62a123d529.js +29 -0
- package/.next-prod/static/chunks/app/{layout-a0362651ba6e6e6f.js → layout-1659a95e6c4a6bb5.js} +1 -1
- package/.next-prod/static/chunks/app/{page-1b14cabf47df9ff7.js → page-afcbd897b4c3600f.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-1b14cabf47df9ff7.js → page-afcbd897b4c3600f.js} +1 -1
- package/.next-prod/static/css/f4a773117ca8af75.css +1 -0
- package/.next-prod/trace +13 -13
- package/.next-prod/trace-build +1 -1
- package/README.md +8 -7
- package/README.zh.md +8 -7
- package/bin/cock-browser.messages.mjs +176 -0
- package/bin/cock-browser.mjs +290 -18
- package/bin/cock-codegraph.mjs +21 -6
- package/bin/cock-connection.mjs +151 -0
- package/bin/cock.mjs +12 -1
- package/bin/setup-dev.mjs +15 -13
- package/chrome-extension/automation.js +684 -32
- package/chrome-extension/manifest.json +1 -1
- package/chrome-extension/messages.js +45 -0
- package/dist/{chunk-CZWJPTRO.mjs → chunk-GCYLMG43.mjs} +2486 -1047
- package/dist/chunk-O4P2J44N.mjs +314 -0
- package/dist/{chunk-KRTISG5I.mjs → chunk-WOM47O75.mjs} +245 -10
- package/dist/httpApi.mjs +140 -7
- package/dist/scheduledTasks.mjs +15 -1159
- package/dist/{server-OSOMFNXR.mjs → server-SNB4H35J.mjs} +8 -2
- package/dist/wsServer.mjs +27 -19
- package/package.json +3 -5
- package/server.mjs +5 -1
- package/.next-prod/static/chunks/5188-415582403ef0e29c.js +0 -29
- package/.next-prod/static/chunks/6345-e5ceeb2aeb698eb6.js +0 -14
- package/.next-prod/static/css/cc6d733cdf607b30.css +0 -1
- package/dist/chunk-ZJ6CC3MH.mjs +0 -223
- /package/.next-prod/static/{GAYKr2BmQpFqJgRJfvQ3D → bOkuiIr_nWzG5GjPLNqdN}/_buildManifest.js +0 -0
- /package/.next-prod/static/{GAYKr2BmQpFqJgRJfvQ3D → bOkuiIr_nWzG5GjPLNqdN}/_ssgManifest.js +0 -0
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
findSafeStart,
|
|
12
12
|
getAllProjectCwds,
|
|
13
13
|
getBrowserByShortId,
|
|
14
|
+
getBrowserHealth,
|
|
14
15
|
getFirstAvailableLine,
|
|
15
16
|
getLinesView,
|
|
16
17
|
getRegistrySize,
|
|
@@ -25,9 +26,11 @@ import {
|
|
|
25
26
|
notifyExitListeners,
|
|
26
27
|
notifyOutputListeners,
|
|
27
28
|
readAround,
|
|
29
|
+
readBubbleTitles,
|
|
28
30
|
readHead,
|
|
29
31
|
readSince,
|
|
30
32
|
readTail,
|
|
33
|
+
recordCommandResolved,
|
|
31
34
|
registerBrowser,
|
|
32
35
|
registerCommand,
|
|
33
36
|
registerTerminal,
|
|
@@ -38,12 +41,12 @@ import {
|
|
|
38
41
|
unregisterTerminal,
|
|
39
42
|
updateBrowserWs,
|
|
40
43
|
writeStdinToCommand
|
|
41
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-WOM47O75.mjs";
|
|
42
45
|
import {
|
|
43
46
|
createNeo4jDriver,
|
|
44
47
|
runCypherWithDriver,
|
|
45
48
|
serializeValue
|
|
46
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-GCYLMG43.mjs";
|
|
47
50
|
import "./chunk-7P6ASYW6.mjs";
|
|
48
51
|
export {
|
|
49
52
|
PtyRingBuffer,
|
|
@@ -59,6 +62,7 @@ export {
|
|
|
59
62
|
findSafeStart,
|
|
60
63
|
getAllProjectCwds,
|
|
61
64
|
getBrowserByShortId,
|
|
65
|
+
getBrowserHealth,
|
|
62
66
|
getFirstAvailableLine,
|
|
63
67
|
getLinesView,
|
|
64
68
|
getRegistrySize,
|
|
@@ -73,9 +77,11 @@ export {
|
|
|
73
77
|
notifyExitListeners,
|
|
74
78
|
notifyOutputListeners,
|
|
75
79
|
readAround,
|
|
80
|
+
readBubbleTitles,
|
|
76
81
|
readHead,
|
|
77
82
|
readSince,
|
|
78
83
|
readTail,
|
|
84
|
+
recordCommandResolved,
|
|
79
85
|
registerBrowser,
|
|
80
86
|
registerCommand,
|
|
81
87
|
registerTerminal,
|
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-
|
|
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-
|
|
19
|
+
} from "./chunk-WOM47O75.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-
|
|
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-
|
|
686
|
+
try: () => import("./server-SNB4H35J.mjs"),
|
|
687
687
|
catch: (cause) => new AppError({
|
|
688
688
|
message: "failed to import kernel manager",
|
|
689
689
|
cause
|
|
@@ -1165,6 +1165,8 @@ var runTerminalHandler = (ws, projectCwd) => {
|
|
|
1165
1165
|
// packages/feature/explorer/src/server/codeMap/projectGraph/codeIndex.ts
|
|
1166
1166
|
import { promises as fs4 } from "fs";
|
|
1167
1167
|
import path6 from "path";
|
|
1168
|
+
import { exec as exec2 } from "child_process";
|
|
1169
|
+
import { promisify as promisify2 } from "util";
|
|
1168
1170
|
|
|
1169
1171
|
// packages/feature/explorer/src/server/codeMap/projectGraph/buildGraph.ts
|
|
1170
1172
|
import { exec } from "child_process";
|
|
@@ -3872,6 +3874,7 @@ function registerWatcherSubscriber(fn) {
|
|
|
3872
3874
|
}
|
|
3873
3875
|
}
|
|
3874
3876
|
}
|
|
3877
|
+
var execAsync2 = promisify2(exec2);
|
|
3875
3878
|
|
|
3876
3879
|
// src/lib/codeIndexSync.ts
|
|
3877
3880
|
var wired = false;
|
|
@@ -3913,7 +3916,12 @@ var wss = g_ws.__cockpitWss ?? (() => {
|
|
|
3913
3916
|
} else if (pathname === "/ws/terminal") {
|
|
3914
3917
|
runTerminalHandler(ws, query.projectCwd);
|
|
3915
3918
|
} else if (pathname === "/ws/browser") {
|
|
3916
|
-
runBrowserHandler(
|
|
3919
|
+
runBrowserHandler(
|
|
3920
|
+
ws,
|
|
3921
|
+
query.fullId,
|
|
3922
|
+
query.projectCwd,
|
|
3923
|
+
query.tabId
|
|
3924
|
+
);
|
|
3917
3925
|
} else if (pathname === "/ws/terminal-follow") {
|
|
3918
3926
|
runTerminalFollowHandler(ws, query.id);
|
|
3919
3927
|
} else if (pathname === "/ws/jupyter") {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@surething/cockpit",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Claude Code GUI for parallel AI coding — drive Claude (default),
|
|
3
|
+
"version": "1.0.218",
|
|
4
|
+
"description": "Claude Code GUI for parallel AI coding — drive Claude (default), 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",
|
|
7
7
|
"repository": {
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
"claude-code-client",
|
|
20
20
|
"claude-agent-sdk",
|
|
21
21
|
"anthropic",
|
|
22
|
-
"openai-codex",
|
|
23
22
|
"codex",
|
|
24
23
|
"deepseek",
|
|
25
24
|
"deepseek-gui",
|
|
@@ -93,7 +92,7 @@
|
|
|
93
92
|
},
|
|
94
93
|
"dependencies": {
|
|
95
94
|
"@ai-sdk/openai": "^3.0.52",
|
|
96
|
-
"@anthropic-ai/claude-agent-sdk": "^0.
|
|
95
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.158",
|
|
97
96
|
"@dagrejs/dagre": "^3.0.0",
|
|
98
97
|
"@tanstack/react-virtual": "^3.13.18",
|
|
99
98
|
"@tiptap/extension-link": "^3.19.0",
|
|
@@ -168,7 +167,6 @@
|
|
|
168
167
|
"typescript": "5.9.3"
|
|
169
168
|
},
|
|
170
169
|
"overrides": {
|
|
171
|
-
"@anthropic-ai/sdk": "^0.91.1",
|
|
172
170
|
"postcss": "^8.5.10"
|
|
173
171
|
}
|
|
174
172
|
}
|
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
|
|