@jingyi0605/codingns 0.5.1 → 0.6.0
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/dist/public/assets/{AdaptiveButlerPage-SffCV4Vb.js → AdaptiveButlerPage-uFwDdN-F.js} +3 -3
- package/dist/public/assets/App-BZvapsi8.js +30 -0
- package/dist/public/assets/App-CcDXqFl1.css +1 -0
- package/dist/public/assets/{BootstrapPage--zExdgfM.js → BootstrapPage-gHSoa4JN.js} +1 -1
- package/dist/public/assets/ConversationPage-z3sXtKZ7.js +4 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-DvI9CIKi.js → DesktopDetachPreviewPage-4eMRxiBW.js} +1 -1
- package/dist/public/assets/DesktopWindowPage-CZcoGApB.js +2 -0
- package/dist/public/assets/FileContextPanel-C3qex8bb.js +1 -0
- package/dist/public/assets/GitSidebar-BK6H16XU.js +6 -0
- package/dist/public/assets/{MobileCreateSessionSheet-CXSKMnYn.js → MobileCreateSessionSheet-BYfbvK8o.js} +1 -1
- package/dist/public/assets/MobileSheet-Ckug8hTb.js +1 -0
- package/dist/public/assets/{MobileTopHeaderFrame-BWorAJ1C.js → MobileTopHeaderFrame-Bwv8Ovm_.js} +1 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-RqWrBdn2.js +1 -0
- package/dist/public/assets/RelayConnectEntryPage-D_4YL-YH.js +1 -0
- package/dist/public/assets/ServerSettingsModal-CMSm3BZU.js +1 -0
- package/dist/public/assets/SessionIndexPage-DuK10DL5.js +1 -0
- package/dist/public/assets/SettingsPage-fyD-xaHL.js +1 -0
- package/dist/public/assets/TerminalManagerPanel-CCLr1Ypk.js +1 -0
- package/dist/public/assets/{TerminalPage-CvnHXBhw.js → TerminalPage-DaooFaJ4.js} +19 -19
- package/dist/public/assets/{TerminalRuntimeFallbackModal-D7Aq186N.js → TerminalRuntimeFallbackModal-aUzjEBwP.js} +1 -1
- package/dist/public/assets/ToolFilesPage-CGxBvYG0.js +1 -0
- package/dist/public/assets/ToolGitPage-C264yjS9.js +1 -0
- package/dist/public/assets/ToolProcessesPage-BOP4A1cb.js +1 -0
- package/dist/public/assets/ToolsHomePage-CQxGiKQA.js +1 -0
- package/dist/public/assets/WorkbenchLandingPage-CvAY68ca.js +1 -0
- package/dist/public/assets/WorkbenchLayout-DGm8Tc5M.js +3 -0
- package/dist/public/assets/{WorkbenchModal-B09hC9b5.js → WorkbenchModal-0tPIIhca.js} +1 -1
- package/dist/public/assets/{WorkbenchShellRoute-DsW4mBTX.css → WorkbenchShellRoute-BF0nHWOk.css} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-DBBOsJo9.js +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-CDerFYd2.js +1 -0
- package/dist/public/assets/WorkspaceDetailPage-BlJc1CHE.js +1 -0
- package/dist/public/assets/WorkspaceHomePage-BUsKJ3lv.js +1 -0
- package/dist/public/assets/client-runtime-manager-BZpL17fc.js +1 -0
- package/dist/public/assets/{default-session-permission-mode-D0wZ9Jek.js → default-session-permission-mode-DT4SGiwp.js} +1 -1
- package/dist/public/assets/file-tree-icon-Db5LXC8h.js +31 -0
- package/dist/public/assets/index-BZLcEHW3.js +42 -0
- package/dist/public/assets/index-BbspQPC2.css +1 -0
- package/dist/public/assets/login-direct-candidate-resolver-1mxe_Oh8.js +1 -0
- package/dist/public/assets/{preferences-service-gOt2ZjKZ.js → preferences-service-DWnzl5a0.js} +1 -1
- package/dist/public/assets/relay-entry-C5_Iay0I.js +1 -0
- package/dist/public/assets/session-runtime-machine-DdLeDqQr.js +17 -0
- package/dist/public/assets/{styles-BWPBZvze.css → styles-CsEMfdaS.css} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-BMT-rSEe.js → terminal-runtime-meta-cdtWVfCm.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-zMcEOGca.js → useRegisteredDebugTemplates-oFAQNIqh.js} +1 -1
- package/dist/public/assets/window-BVUB8gMK.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.d.ts +2 -0
- package/dist/server/config/env.js +39 -0
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/modules/client/npm-global-package-service.d.ts +7 -1
- package/dist/server/modules/client/npm-global-package-service.js +149 -43
- package/dist/server/modules/client/npm-global-package-service.js.map +1 -1
- package/dist/server/modules/client/service-update-task-service.js +6 -2
- package/dist/server/modules/client/service-update-task-service.js.map +1 -1
- package/dist/server/modules/client/service-update-types.d.ts +2 -0
- package/dist/server/modules/git/git-controller.d.ts +3 -0
- package/dist/server/modules/git/git-controller.js +3 -0
- package/dist/server/modules/git/git-controller.js.map +1 -1
- package/dist/server/modules/git/git-read-service.js +47 -1
- package/dist/server/modules/git/git-read-service.js.map +1 -1
- package/dist/server/modules/git/git-write-service.d.ts +4 -0
- package/dist/server/modules/git/git-write-service.js +24 -0
- package/dist/server/modules/git/git-write-service.js.map +1 -1
- package/dist/server/modules/git/types.d.ts +1 -0
- package/dist/server/modules/git/workspace-repo-guard.d.ts +2 -0
- package/dist/server/modules/git/workspace-repo-guard.js +24 -10
- package/dist/server/modules/git/workspace-repo-guard.js.map +1 -1
- package/dist/server/modules/parallel-sessions/parallel-session-controller.d.ts +53 -0
- package/dist/server/modules/parallel-sessions/parallel-session-controller.js +70 -0
- package/dist/server/modules/parallel-sessions/parallel-session-controller.js.map +1 -0
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.d.ts +83 -0
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.js +591 -0
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.js.map +1 -0
- package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.d.ts +56 -0
- package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.js +483 -0
- package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.js.map +1 -0
- package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-packets.d.ts +16 -1
- package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-packets.js.map +1 -1
- package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.d.ts +2 -1
- package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.js +18 -0
- package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.js.map +1 -1
- package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.d.ts +2 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.js +129 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.js.map +1 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-client-context.d.ts +13 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-client-context.js +2 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-client-context.js.map +1 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.d.ts +6 -0
- package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +110 -10
- package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -1
- package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.d.ts +16 -4
- package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js +220 -102
- package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js.map +1 -1
- package/dist/server/modules/relay-tunnel/relay-tunnel-service.d.ts +4 -1
- package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +257 -162
- package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +3 -0
- package/dist/server/modules/sessions/codex-app-server-helper-client.js +56 -45
- package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-process.js +21 -2
- package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
- package/dist/server/modules/sessions/session-activity-inspector.js +6 -8
- package/dist/server/modules/sessions/session-activity-inspector.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +11 -1
- package/dist/server/modules/sessions/session-history-service.js +204 -21
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js +208 -25
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/workbench/codex-archive-watcher.d.ts +16 -0
- package/dist/server/modules/workbench/codex-archive-watcher.js +50 -0
- package/dist/server/modules/workbench/codex-archive-watcher.js.map +1 -0
- package/dist/server/modules/workbench/workbench-service.d.ts +43 -4
- package/dist/server/modules/workbench/workbench-service.js +72 -9
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +1 -1
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +26 -3
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.d.ts +3 -1
- package/dist/server/modules/workspace/workspace-service.js +10 -2
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-base-ref-resolver.d.ts +20 -0
- package/dist/server/modules/worktree/worktree-base-ref-resolver.js +111 -0
- package/dist/server/modules/worktree/worktree-base-ref-resolver.js.map +1 -0
- package/dist/server/modules/worktree/worktree-cleanup-service.js +9 -3
- package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-manager.d.ts +0 -1
- package/dist/server/modules/worktree/worktree-manager.js +14 -20
- package/dist/server/modules/worktree/worktree-manager.js.map +1 -1
- package/dist/server/routes/git.js +1 -0
- package/dist/server/routes/git.js.map +1 -1
- package/dist/server/routes/parallel-groups.d.ts +3 -0
- package/dist/server/routes/parallel-groups.js +9 -0
- package/dist/server/routes/parallel-groups.js.map +1 -0
- package/dist/server/server/create-server.d.ts +8 -0
- package/dist/server/server/create-server.js +48 -9
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/server/workbench-runtime-terminal-sync.d.ts +14 -0
- package/dist/server/server/workbench-runtime-terminal-sync.js +17 -0
- package/dist/server/server/workbench-runtime-terminal-sync.js.map +1 -0
- package/dist/server/storage/repositories/parallel-session-group-repository.d.ts +11 -0
- package/dist/server/storage/repositories/parallel-session-group-repository.js +131 -0
- package/dist/server/storage/repositories/parallel-session-group-repository.js.map +1 -0
- package/dist/server/storage/repositories/parallel-session-member-repository.d.ts +12 -0
- package/dist/server/storage/repositories/parallel-session-member-repository.js +150 -0
- package/dist/server/storage/repositories/parallel-session-member-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-isolated-workspace-repository.d.ts +15 -0
- package/dist/server/storage/repositories/session-isolated-workspace-repository.js +230 -0
- package/dist/server/storage/repositories/session-isolated-workspace-repository.js.map +1 -0
- package/dist/server/storage/sqlite/schema.sql +73 -0
- package/dist/server/types/domain.d.ts +72 -0
- package/dist/server/ws/workbench-ws-hub.d.ts +3 -1
- package/dist/server/ws/workbench-ws-hub.js +189 -20
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/dist/server/ws/ws-server.js +141 -8
- package/dist/server/ws/ws-server.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +67 -6
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +3 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +46 -22
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +558 -309
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +29 -5
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/App-DUAg5urj.css +0 -1
- package/dist/public/assets/App-WOLwMld_.js +0 -30
- package/dist/public/assets/ConversationPage-D9pzRmOg.js +0 -2
- package/dist/public/assets/DesktopWindowPage-D8FpOSLE.js +0 -2
- package/dist/public/assets/FileContextPanel-C8T7oqRN.js +0 -1
- package/dist/public/assets/GitSidebar-Bze7DNnc.js +0 -6
- package/dist/public/assets/MobileSheet-Gzc14EpR.js +0 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-DOr4pTUq.js +0 -1
- package/dist/public/assets/ServerSettingsModal-BYB0GvTl.js +0 -1
- package/dist/public/assets/SessionIndexPage-CR3IARXX.js +0 -1
- package/dist/public/assets/SettingsPage-B_BQtnwE.js +0 -1
- package/dist/public/assets/TerminalManagerPanel-PQ-EM64j.js +0 -1
- package/dist/public/assets/ToolFilesPage-Qzkc6K2I.js +0 -1
- package/dist/public/assets/ToolGitPage-BdNDN-cV.js +0 -1
- package/dist/public/assets/ToolProcessesPage-EXJ9DHWI.js +0 -1
- package/dist/public/assets/ToolsHomePage-CjF3CWzR.js +0 -1
- package/dist/public/assets/WorkbenchLandingPage-DZPk4SmX.js +0 -1
- package/dist/public/assets/WorkbenchLayout-rwQib5In.js +0 -3
- package/dist/public/assets/WorkbenchShellRoute-Cerk5uK7.js +0 -1
- package/dist/public/assets/WorkspaceDebugDetailPage-Bcq8s-Ma.js +0 -1
- package/dist/public/assets/WorkspaceDetailPage-DNAa8pKr.js +0 -1
- package/dist/public/assets/WorkspaceHomePage-BoiLuACV.js +0 -1
- package/dist/public/assets/client-runtime-manager-CRQ-F5d2.js +0 -1
- package/dist/public/assets/file-tree-icon-Dp_xhVfD.js +0 -31
- package/dist/public/assets/index-C2G8Gmf1.js +0 -42
- package/dist/public/assets/index-CpPTUeA3.css +0 -1
- package/dist/public/assets/session-runtime-machine-Dq3pW-UF.js +0 -17
- package/dist/public/assets/window-BWqRixxq.js +0 -1
- /package/dist/public/assets/{styles-CSUx5LGe.js → styles-DRVvx_kv.js} +0 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
export class SessionIsolatedWorkspaceRepository {
|
|
2
|
+
db;
|
|
3
|
+
constructor(db) {
|
|
4
|
+
this.db = db;
|
|
5
|
+
}
|
|
6
|
+
create(record) {
|
|
7
|
+
this.db
|
|
8
|
+
.prepare(`INSERT INTO session_isolated_workspaces (
|
|
9
|
+
id,
|
|
10
|
+
group_id,
|
|
11
|
+
owner_session_id,
|
|
12
|
+
workspace_id,
|
|
13
|
+
source_workspace_id,
|
|
14
|
+
branch_name,
|
|
15
|
+
base_ref,
|
|
16
|
+
base_commit,
|
|
17
|
+
head_commit,
|
|
18
|
+
lifecycle_status,
|
|
19
|
+
promoted_at,
|
|
20
|
+
removed_at,
|
|
21
|
+
created_at,
|
|
22
|
+
updated_at
|
|
23
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
24
|
+
.run(record.id, record.groupId, record.ownerSessionId, record.workspaceId, record.sourceWorkspaceId, record.branchName, record.baseRef, record.baseCommit, record.headCommit, record.lifecycleStatus, record.promotedAt, record.removedAt, record.createdAt, record.updatedAt);
|
|
25
|
+
return record;
|
|
26
|
+
}
|
|
27
|
+
update(record) {
|
|
28
|
+
this.db
|
|
29
|
+
.prepare(`UPDATE session_isolated_workspaces
|
|
30
|
+
SET group_id = ?,
|
|
31
|
+
owner_session_id = ?,
|
|
32
|
+
workspace_id = ?,
|
|
33
|
+
source_workspace_id = ?,
|
|
34
|
+
branch_name = ?,
|
|
35
|
+
base_ref = ?,
|
|
36
|
+
base_commit = ?,
|
|
37
|
+
head_commit = ?,
|
|
38
|
+
lifecycle_status = ?,
|
|
39
|
+
promoted_at = ?,
|
|
40
|
+
removed_at = ?,
|
|
41
|
+
created_at = ?,
|
|
42
|
+
updated_at = ?
|
|
43
|
+
WHERE id = ?`)
|
|
44
|
+
.run(record.groupId, record.ownerSessionId, record.workspaceId, record.sourceWorkspaceId, record.branchName, record.baseRef, record.baseCommit, record.headCommit, record.lifecycleStatus, record.promotedAt, record.removedAt, record.createdAt, record.updatedAt, record.id);
|
|
45
|
+
return this.findById(record.id);
|
|
46
|
+
}
|
|
47
|
+
findById(id) {
|
|
48
|
+
const row = this.db
|
|
49
|
+
.prepare(`SELECT
|
|
50
|
+
id,
|
|
51
|
+
group_id,
|
|
52
|
+
owner_session_id,
|
|
53
|
+
workspace_id,
|
|
54
|
+
source_workspace_id,
|
|
55
|
+
branch_name,
|
|
56
|
+
base_ref,
|
|
57
|
+
base_commit,
|
|
58
|
+
head_commit,
|
|
59
|
+
lifecycle_status,
|
|
60
|
+
promoted_at,
|
|
61
|
+
removed_at,
|
|
62
|
+
created_at,
|
|
63
|
+
updated_at
|
|
64
|
+
FROM session_isolated_workspaces
|
|
65
|
+
WHERE id = ?`)
|
|
66
|
+
.get(id);
|
|
67
|
+
return row ? mapSessionIsolatedWorkspaceRow(row) : null;
|
|
68
|
+
}
|
|
69
|
+
findByOwnerSessionId(ownerSessionId) {
|
|
70
|
+
const row = this.db
|
|
71
|
+
.prepare(`SELECT
|
|
72
|
+
id,
|
|
73
|
+
group_id,
|
|
74
|
+
owner_session_id,
|
|
75
|
+
workspace_id,
|
|
76
|
+
source_workspace_id,
|
|
77
|
+
branch_name,
|
|
78
|
+
base_ref,
|
|
79
|
+
base_commit,
|
|
80
|
+
head_commit,
|
|
81
|
+
lifecycle_status,
|
|
82
|
+
promoted_at,
|
|
83
|
+
removed_at,
|
|
84
|
+
created_at,
|
|
85
|
+
updated_at
|
|
86
|
+
FROM session_isolated_workspaces
|
|
87
|
+
WHERE owner_session_id = ?`)
|
|
88
|
+
.get(ownerSessionId);
|
|
89
|
+
return row ? mapSessionIsolatedWorkspaceRow(row) : null;
|
|
90
|
+
}
|
|
91
|
+
findByWorkspaceId(workspaceId) {
|
|
92
|
+
const row = this.db
|
|
93
|
+
.prepare(`SELECT
|
|
94
|
+
id,
|
|
95
|
+
group_id,
|
|
96
|
+
owner_session_id,
|
|
97
|
+
workspace_id,
|
|
98
|
+
source_workspace_id,
|
|
99
|
+
branch_name,
|
|
100
|
+
base_ref,
|
|
101
|
+
base_commit,
|
|
102
|
+
head_commit,
|
|
103
|
+
lifecycle_status,
|
|
104
|
+
promoted_at,
|
|
105
|
+
removed_at,
|
|
106
|
+
created_at,
|
|
107
|
+
updated_at
|
|
108
|
+
FROM session_isolated_workspaces
|
|
109
|
+
WHERE workspace_id = ?`)
|
|
110
|
+
.get(workspaceId);
|
|
111
|
+
return row ? mapSessionIsolatedWorkspaceRow(row) : null;
|
|
112
|
+
}
|
|
113
|
+
listByGroupId(groupId) {
|
|
114
|
+
return this.db
|
|
115
|
+
.prepare(`SELECT
|
|
116
|
+
id,
|
|
117
|
+
group_id,
|
|
118
|
+
owner_session_id,
|
|
119
|
+
workspace_id,
|
|
120
|
+
source_workspace_id,
|
|
121
|
+
branch_name,
|
|
122
|
+
base_ref,
|
|
123
|
+
base_commit,
|
|
124
|
+
head_commit,
|
|
125
|
+
lifecycle_status,
|
|
126
|
+
promoted_at,
|
|
127
|
+
removed_at,
|
|
128
|
+
created_at,
|
|
129
|
+
updated_at
|
|
130
|
+
FROM session_isolated_workspaces
|
|
131
|
+
WHERE group_id = ?
|
|
132
|
+
ORDER BY created_at ASC`)
|
|
133
|
+
.all(groupId)
|
|
134
|
+
.map((row) => mapSessionIsolatedWorkspaceRow(row));
|
|
135
|
+
}
|
|
136
|
+
listByOwnerSessionIds(ownerSessionIds) {
|
|
137
|
+
if (ownerSessionIds.length === 0) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
const placeholders = ownerSessionIds.map(() => "?").join(", ");
|
|
141
|
+
return this.db
|
|
142
|
+
.prepare(`SELECT
|
|
143
|
+
id,
|
|
144
|
+
group_id,
|
|
145
|
+
owner_session_id,
|
|
146
|
+
workspace_id,
|
|
147
|
+
source_workspace_id,
|
|
148
|
+
branch_name,
|
|
149
|
+
base_ref,
|
|
150
|
+
base_commit,
|
|
151
|
+
head_commit,
|
|
152
|
+
lifecycle_status,
|
|
153
|
+
promoted_at,
|
|
154
|
+
removed_at,
|
|
155
|
+
created_at,
|
|
156
|
+
updated_at
|
|
157
|
+
FROM session_isolated_workspaces
|
|
158
|
+
WHERE owner_session_id IN (${placeholders})`)
|
|
159
|
+
.all(...ownerSessionIds)
|
|
160
|
+
.map((row) => mapSessionIsolatedWorkspaceRow(row));
|
|
161
|
+
}
|
|
162
|
+
listByLifecycleStatuses(lifecycleStatuses) {
|
|
163
|
+
if (lifecycleStatuses.length === 0) {
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
const placeholders = lifecycleStatuses.map(() => "?").join(", ");
|
|
167
|
+
return this.db
|
|
168
|
+
.prepare(`SELECT
|
|
169
|
+
id,
|
|
170
|
+
group_id,
|
|
171
|
+
owner_session_id,
|
|
172
|
+
workspace_id,
|
|
173
|
+
source_workspace_id,
|
|
174
|
+
branch_name,
|
|
175
|
+
base_ref,
|
|
176
|
+
base_commit,
|
|
177
|
+
head_commit,
|
|
178
|
+
lifecycle_status,
|
|
179
|
+
promoted_at,
|
|
180
|
+
removed_at,
|
|
181
|
+
created_at,
|
|
182
|
+
updated_at
|
|
183
|
+
FROM session_isolated_workspaces
|
|
184
|
+
WHERE lifecycle_status IN (${placeholders})`)
|
|
185
|
+
.all(...lifecycleStatuses)
|
|
186
|
+
.map((row) => mapSessionIsolatedWorkspaceRow(row));
|
|
187
|
+
}
|
|
188
|
+
listBySourceWorkspaceId(sourceWorkspaceId) {
|
|
189
|
+
return this.db
|
|
190
|
+
.prepare(`SELECT
|
|
191
|
+
id,
|
|
192
|
+
group_id,
|
|
193
|
+
owner_session_id,
|
|
194
|
+
workspace_id,
|
|
195
|
+
source_workspace_id,
|
|
196
|
+
branch_name,
|
|
197
|
+
base_ref,
|
|
198
|
+
base_commit,
|
|
199
|
+
head_commit,
|
|
200
|
+
lifecycle_status,
|
|
201
|
+
promoted_at,
|
|
202
|
+
removed_at,
|
|
203
|
+
created_at,
|
|
204
|
+
updated_at
|
|
205
|
+
FROM session_isolated_workspaces
|
|
206
|
+
WHERE source_workspace_id = ?
|
|
207
|
+
ORDER BY created_at ASC`)
|
|
208
|
+
.all(sourceWorkspaceId)
|
|
209
|
+
.map((row) => mapSessionIsolatedWorkspaceRow(row));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function mapSessionIsolatedWorkspaceRow(row) {
|
|
213
|
+
return {
|
|
214
|
+
id: row.id,
|
|
215
|
+
groupId: row.group_id,
|
|
216
|
+
ownerSessionId: row.owner_session_id,
|
|
217
|
+
workspaceId: row.workspace_id,
|
|
218
|
+
sourceWorkspaceId: row.source_workspace_id,
|
|
219
|
+
branchName: row.branch_name,
|
|
220
|
+
baseRef: row.base_ref,
|
|
221
|
+
baseCommit: row.base_commit,
|
|
222
|
+
headCommit: row.head_commit,
|
|
223
|
+
lifecycleStatus: row.lifecycle_status,
|
|
224
|
+
promotedAt: row.promoted_at,
|
|
225
|
+
removedAt: row.removed_at,
|
|
226
|
+
createdAt: row.created_at,
|
|
227
|
+
updatedAt: row.updated_at
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=session-isolated-workspace-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-isolated-workspace-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-isolated-workspace-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kCAAkC;IAChB;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;6DAeqD,CACtD;aACA,GAAG,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;sBAcc,CACf;aACA,GAAG,CACF,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,EAAE,CACV,CAAC;QAEJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;;;;sBAgBc,CACf;aACA,GAAG,CAAC,EAAE,CAA4C,CAAC;QAEtD,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,oBAAoB,CAAC,cAAsB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;;;;oCAgB4B,CAC7B;aACA,GAAG,CAAC,cAAc,CAA4C,CAAC;QAElE,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;;;;gCAgBwB,CACzB;aACA,GAAG,CAAC,WAAW,CAA4C,CAAC;QAE/D,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;;iCAiByB,CAC1B;aACA,GAAG,CAAC,OAAO,CAAC;aACZ,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,qBAAqB,CAAC,eAAkC;QACtD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;sCAgB8B,YAAY,GAAG,CAC9C;aACA,GAAG,CAAC,GAAG,eAAe,CAAC;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,uBAAuB,CACrB,iBAA+E;QAE/E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;sCAgB8B,YAAY,GAAG,CAC9C;aACA,GAAG,CAAC,GAAG,iBAAiB,CAAC;aACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,uBAAuB,CAAC,iBAAyB;QAC/C,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;;iCAiByB,CAC1B;aACA,GAAG,CAAC,iBAAiB,CAAC;aACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;CACF;AAmBD,SAAS,8BAA8B,CACrC,GAAgC;IAEhC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -236,6 +236,79 @@ CREATE INDEX IF NOT EXISTS idx_session_forks_parent_session_id
|
|
|
236
236
|
CREATE INDEX IF NOT EXISTS idx_session_forks_source_message_id
|
|
237
237
|
ON session_forks(fork_source_message_id);
|
|
238
238
|
|
|
239
|
+
CREATE TABLE IF NOT EXISTS parallel_session_groups (
|
|
240
|
+
id TEXT PRIMARY KEY,
|
|
241
|
+
workspace_id TEXT NOT NULL,
|
|
242
|
+
source_type TEXT NOT NULL CHECK (source_type IN ('fork', 'new')),
|
|
243
|
+
source_session_id TEXT,
|
|
244
|
+
source_message_id TEXT,
|
|
245
|
+
shared_prompt TEXT,
|
|
246
|
+
requested_count INTEGER NOT NULL CHECK (requested_count BETWEEN 2 AND 4),
|
|
247
|
+
anchor_session_id TEXT,
|
|
248
|
+
status TEXT NOT NULL CHECK (status IN ('active', 'deleting', 'deleted')),
|
|
249
|
+
created_by_user_id TEXT NOT NULL,
|
|
250
|
+
created_at TEXT NOT NULL,
|
|
251
|
+
updated_at TEXT NOT NULL,
|
|
252
|
+
deleted_at TEXT,
|
|
253
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
|
|
254
|
+
FOREIGN KEY (created_by_user_id) REFERENCES auth_users(id)
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
CREATE INDEX IF NOT EXISTS idx_parallel_session_groups_workspace_id
|
|
258
|
+
ON parallel_session_groups(workspace_id, status, updated_at DESC);
|
|
259
|
+
CREATE INDEX IF NOT EXISTS idx_parallel_session_groups_anchor_session_id
|
|
260
|
+
ON parallel_session_groups(anchor_session_id);
|
|
261
|
+
|
|
262
|
+
CREATE TABLE IF NOT EXISTS parallel_session_members (
|
|
263
|
+
group_id TEXT NOT NULL,
|
|
264
|
+
session_id TEXT NOT NULL PRIMARY KEY,
|
|
265
|
+
ordinal INTEGER NOT NULL CHECK (ordinal >= 0),
|
|
266
|
+
role TEXT NOT NULL CHECK (role IN ('anchor', 'member')),
|
|
267
|
+
provider TEXT NOT NULL,
|
|
268
|
+
model TEXT,
|
|
269
|
+
member_prompt TEXT,
|
|
270
|
+
workspace_isolation_mode TEXT NOT NULL CHECK (
|
|
271
|
+
workspace_isolation_mode IN ('none', 'temporary_worktree')
|
|
272
|
+
),
|
|
273
|
+
temporary_workspace_id TEXT,
|
|
274
|
+
created_at TEXT NOT NULL,
|
|
275
|
+
updated_at TEXT NOT NULL,
|
|
276
|
+
deleted_at TEXT,
|
|
277
|
+
FOREIGN KEY (group_id) REFERENCES parallel_session_groups(id) ON DELETE CASCADE
|
|
278
|
+
);
|
|
279
|
+
|
|
280
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_parallel_session_members_group_ordinal
|
|
281
|
+
ON parallel_session_members(group_id, ordinal);
|
|
282
|
+
CREATE INDEX IF NOT EXISTS idx_parallel_session_members_group_id
|
|
283
|
+
ON parallel_session_members(group_id, deleted_at, ordinal ASC);
|
|
284
|
+
|
|
285
|
+
CREATE TABLE IF NOT EXISTS session_isolated_workspaces (
|
|
286
|
+
id TEXT PRIMARY KEY,
|
|
287
|
+
group_id TEXT NOT NULL,
|
|
288
|
+
owner_session_id TEXT NOT NULL UNIQUE,
|
|
289
|
+
workspace_id TEXT NOT NULL,
|
|
290
|
+
source_workspace_id TEXT NOT NULL,
|
|
291
|
+
branch_name TEXT NOT NULL,
|
|
292
|
+
base_ref TEXT NOT NULL,
|
|
293
|
+
base_commit TEXT NOT NULL,
|
|
294
|
+
head_commit TEXT,
|
|
295
|
+
lifecycle_status TEXT NOT NULL CHECK (
|
|
296
|
+
lifecycle_status IN ('active', 'promoted', 'removing', 'removed')
|
|
297
|
+
),
|
|
298
|
+
promoted_at TEXT,
|
|
299
|
+
removed_at TEXT,
|
|
300
|
+
created_at TEXT NOT NULL,
|
|
301
|
+
updated_at TEXT NOT NULL,
|
|
302
|
+
FOREIGN KEY (group_id) REFERENCES parallel_session_groups(id) ON DELETE CASCADE,
|
|
303
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
|
|
304
|
+
FOREIGN KEY (source_workspace_id) REFERENCES workspaces(id)
|
|
305
|
+
);
|
|
306
|
+
|
|
307
|
+
CREATE INDEX IF NOT EXISTS idx_session_isolated_workspaces_group_id
|
|
308
|
+
ON session_isolated_workspaces(group_id, lifecycle_status, updated_at DESC);
|
|
309
|
+
CREATE INDEX IF NOT EXISTS idx_session_isolated_workspaces_workspace_id
|
|
310
|
+
ON session_isolated_workspaces(workspace_id, lifecycle_status, updated_at DESC);
|
|
311
|
+
|
|
239
312
|
CREATE TABLE IF NOT EXISTS session_changed_files (
|
|
240
313
|
session_id TEXT NOT NULL,
|
|
241
314
|
workspace_id TEXT NOT NULL,
|
|
@@ -86,6 +86,11 @@ export interface Workspace {
|
|
|
86
86
|
removedAt?: string | null;
|
|
87
87
|
}
|
|
88
88
|
export type WorkspaceWorktreeLifecycleStatus = "active" | "merged" | "abandoned" | "removing" | "removed";
|
|
89
|
+
export type ParallelSessionGroupSourceType = "fork" | "new";
|
|
90
|
+
export type ParallelSessionGroupStatus = "active" | "deleting" | "deleted";
|
|
91
|
+
export type ParallelSessionMemberRole = "anchor" | "member";
|
|
92
|
+
export type ParallelSessionWorkspaceIsolationMode = "none" | "temporary_worktree";
|
|
93
|
+
export type SessionIsolatedWorkspaceLifecycleStatus = "active" | "promoted" | "removing" | "removed";
|
|
89
94
|
export interface WorkspaceWorktreeRecord {
|
|
90
95
|
workspaceId: string;
|
|
91
96
|
rootWorkspaceId: string;
|
|
@@ -104,6 +109,70 @@ export interface WorkspaceWorktreeRecord {
|
|
|
104
109
|
createdAt: string;
|
|
105
110
|
updatedAt: string;
|
|
106
111
|
}
|
|
112
|
+
export interface ParallelSessionGroupRecord {
|
|
113
|
+
id: string;
|
|
114
|
+
workspaceId: string;
|
|
115
|
+
sourceType: ParallelSessionGroupSourceType;
|
|
116
|
+
sourceSessionId: string | null;
|
|
117
|
+
sourceMessageId: string | null;
|
|
118
|
+
sharedPrompt: string | null;
|
|
119
|
+
requestedCount: number;
|
|
120
|
+
anchorSessionId: string | null;
|
|
121
|
+
status: ParallelSessionGroupStatus;
|
|
122
|
+
createdByUserId: string;
|
|
123
|
+
createdAt: string;
|
|
124
|
+
updatedAt: string;
|
|
125
|
+
deletedAt: string | null;
|
|
126
|
+
}
|
|
127
|
+
export interface ParallelSessionMemberRecord {
|
|
128
|
+
groupId: string;
|
|
129
|
+
sessionId: string;
|
|
130
|
+
ordinal: number;
|
|
131
|
+
role: ParallelSessionMemberRole;
|
|
132
|
+
provider: ProviderId;
|
|
133
|
+
model: string | null;
|
|
134
|
+
memberPrompt: string | null;
|
|
135
|
+
workspaceIsolationMode: ParallelSessionWorkspaceIsolationMode;
|
|
136
|
+
temporaryWorkspaceId: string | null;
|
|
137
|
+
createdAt: string;
|
|
138
|
+
updatedAt: string;
|
|
139
|
+
deletedAt: string | null;
|
|
140
|
+
}
|
|
141
|
+
export interface SessionIsolatedWorkspaceRecord {
|
|
142
|
+
id: string;
|
|
143
|
+
groupId: string;
|
|
144
|
+
ownerSessionId: string;
|
|
145
|
+
workspaceId: string;
|
|
146
|
+
sourceWorkspaceId: string;
|
|
147
|
+
branchName: string;
|
|
148
|
+
baseRef: string;
|
|
149
|
+
baseCommit: string;
|
|
150
|
+
headCommit: string | null;
|
|
151
|
+
lifecycleStatus: SessionIsolatedWorkspaceLifecycleStatus;
|
|
152
|
+
promotedAt: string | null;
|
|
153
|
+
removedAt: string | null;
|
|
154
|
+
createdAt: string;
|
|
155
|
+
updatedAt: string;
|
|
156
|
+
}
|
|
157
|
+
export interface ParallelSessionGroupSummary {
|
|
158
|
+
groupId: string;
|
|
159
|
+
role: ParallelSessionMemberRole;
|
|
160
|
+
memberCount: number;
|
|
161
|
+
sourceType: ParallelSessionGroupSourceType;
|
|
162
|
+
sourceSessionId: string | null;
|
|
163
|
+
anchorSessionId: string | null;
|
|
164
|
+
colorToken: string;
|
|
165
|
+
}
|
|
166
|
+
export interface SessionIsolatedWorkspaceSummary {
|
|
167
|
+
id: string;
|
|
168
|
+
workspaceId: string;
|
|
169
|
+
sourceWorkspaceId: string;
|
|
170
|
+
branchName: string;
|
|
171
|
+
lifecycleStatus: SessionIsolatedWorkspaceLifecycleStatus;
|
|
172
|
+
promotedAt: string | null;
|
|
173
|
+
createdAt: string;
|
|
174
|
+
updatedAt: string;
|
|
175
|
+
}
|
|
107
176
|
export interface WorkspaceNavigationStateRecord {
|
|
108
177
|
workspaceId: string;
|
|
109
178
|
userId: string;
|
|
@@ -264,6 +333,9 @@ export interface SessionListItem {
|
|
|
264
333
|
lastSeenAt: string | null;
|
|
265
334
|
watchdogTriggeredAt?: string | null;
|
|
266
335
|
activityState: SessionActivityState;
|
|
336
|
+
parallelGroup?: ParallelSessionGroupSummary | null;
|
|
337
|
+
displayParentSessionId?: string | null;
|
|
338
|
+
sessionIsolatedWorkspace?: SessionIsolatedWorkspaceSummary | null;
|
|
267
339
|
}
|
|
268
340
|
export interface FileNode {
|
|
269
341
|
path: string;
|
|
@@ -3,6 +3,7 @@ import type { AuthContext } from "../modules/auth/auth-service.js";
|
|
|
3
3
|
import type { TerminalService } from "../modules/terminal/terminal-service.js";
|
|
4
4
|
import type { WorkbenchService } from "../modules/workbench/workbench-service.js";
|
|
5
5
|
import type { WorkspacePanelSnapshotService } from "../modules/workbench/workspace-panel-snapshot-service.js";
|
|
6
|
+
import type { CodexArchiveWatcher } from "../modules/workbench/codex-archive-watcher.js";
|
|
6
7
|
import type { WorkspaceFileWatcher } from "../modules/workbench/workspace-file-watcher.js";
|
|
7
8
|
export declare class WorkbenchWsHub {
|
|
8
9
|
private readonly workbenchService;
|
|
@@ -14,7 +15,7 @@ export declare class WorkbenchWsHub {
|
|
|
14
15
|
private readonly clientGitSubscriptions;
|
|
15
16
|
private readonly clientTerminalManagerSubscriptions;
|
|
16
17
|
private readonly clientWorkspaceManagementSubscriptions;
|
|
17
|
-
constructor(workbenchService: WorkbenchService, workspacePanelSnapshotService: WorkspacePanelSnapshotService, fileWatcher: WorkspaceFileWatcher, terminalService?: Pick<TerminalService, "on">);
|
|
18
|
+
constructor(workbenchService: WorkbenchService, workspacePanelSnapshotService: WorkspacePanelSnapshotService, fileWatcher: WorkspaceFileWatcher, terminalService?: Pick<TerminalService, "on">, codexArchiveWatcher?: Pick<CodexArchiveWatcher, "setOnChange">);
|
|
18
19
|
handleMessage(client: WebSocket, payload: unknown, authContext: AuthContext): boolean;
|
|
19
20
|
cleanupClient(client: WebSocket): void;
|
|
20
21
|
broadcastSnapshot(userId: string): Promise<void>;
|
|
@@ -22,6 +23,7 @@ export declare class WorkbenchWsHub {
|
|
|
22
23
|
private flushRealtimeBroadcast;
|
|
23
24
|
private attachClient;
|
|
24
25
|
private handleWorkspaceWatcherChange;
|
|
26
|
+
private handleCodexArchiveChange;
|
|
25
27
|
private handleTerminalManagerChange;
|
|
26
28
|
private getOrCreateChannel;
|
|
27
29
|
private sendWorkbenchSnapshotToClient;
|