@cerbur/clutch-dsh-worktree 0.1.21 → 0.1.23
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/README.md +49 -38
- package/README.zh.md +42 -28
- package/cordis.patch.yml +0 -8
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +5 -8
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/dashboard/dashboard-sessions.d.ts +1 -1
- package/lib/client/dashboard/dashboard-sessions.d.ts.map +1 -1
- package/lib/client/dashboard/dashboard-sessions.js +3 -2
- package/lib/client/dashboard/dashboard-sessions.js.map +1 -1
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +33 -40
- package/lib/client/entry.js.map +1 -1
- package/lib/client/index.d.ts +0 -3
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +0 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.d.ts +2 -26
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +2 -26
- package/lib/client/locales.js.map +1 -1
- package/lib/client/restart-notice.d.ts +1 -4
- package/lib/client/restart-notice.d.ts.map +1 -1
- package/lib/client/restart-notice.js +0 -20
- package/lib/client/restart-notice.js.map +1 -1
- package/lib/client/session/local-session.d.ts +27 -0
- package/lib/client/session/local-session.d.ts.map +1 -0
- package/lib/client/session/local-session.js +61 -0
- package/lib/client/session/local-session.js.map +1 -0
- package/lib/client/session/session-rename.d.ts.map +1 -1
- package/lib/client/session/session-rename.js.map +1 -1
- package/lib/client/session/virtual-workspace-membership.d.ts +1 -0
- package/lib/client/session/virtual-workspace-membership.d.ts.map +1 -1
- package/lib/client/session/virtual-workspace-membership.js +4 -0
- package/lib/client/session/virtual-workspace-membership.js.map +1 -1
- package/lib/client/session/worktree-session.d.ts +15 -36
- package/lib/client/session/worktree-session.d.ts.map +1 -1
- package/lib/client/session/worktree-session.js +124 -152
- package/lib/client/session/worktree-session.js.map +1 -1
- package/lib/client/steer/steer-activity.d.ts.map +1 -1
- package/lib/client/steer/steer-activity.js +2 -1
- package/lib/client/steer/steer-activity.js.map +1 -1
- package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -1
- package/lib/client/surface/actions/lifecycle-commands.js +1 -28
- package/lib/client/surface/actions/lifecycle-commands.js.map +1 -1
- package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -1
- package/lib/client/surface/actions/useDashboardBatchManage.js +0 -13
- package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -1
- package/lib/client/surface/actions/useLifecycleActions.d.ts +4 -6
- package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useLifecycleActions.js +4 -47
- package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
- package/lib/client/surface/actions/useSessionActions.d.ts +1 -1
- package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useSessionActions.js +11 -20
- package/lib/client/surface/actions/useSessionActions.js.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.js +7 -14
- package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +1 -2
- package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.js +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -1
- package/lib/client/surface/components/LifecycleDialogs.d.ts +1 -1
- package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -1
- package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
- package/lib/client/surface/components/RestartToast.js +1 -2
- package/lib/client/surface/components/RestartToast.js.map +1 -1
- package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
- package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
- package/lib/client/surface/components/SurfaceContent.js +15 -28
- package/lib/client/surface/components/SurfaceContent.js.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.d.ts +1 -1
- package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.js +3 -2
- package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
- package/lib/client/surface/selectors.d.ts +3 -1
- package/lib/client/surface/selectors.d.ts.map +1 -1
- package/lib/client/surface/selectors.js +15 -0
- package/lib/client/surface/selectors.js.map +1 -1
- package/lib/client/surface/shared.d.ts +1 -7
- package/lib/client/surface/shared.d.ts.map +1 -1
- package/lib/client/surface/shared.js +0 -5
- package/lib/client/surface/shared.js.map +1 -1
- package/lib/client/surface/state/useLifecycleState.d.ts +0 -1
- package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
- package/lib/client/surface/state/useLifecycleState.js +0 -3
- package/lib/client/surface/state/useLifecycleState.js.map +1 -1
- package/lib/client/surface/state/useSessionOrdering.d.ts.map +1 -1
- package/lib/client/surface/state/useSessionOrdering.js +1 -1
- package/lib/client/surface/state/useSessionOrdering.js.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts +4 -3
- package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.js +178 -98
- package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts +1 -6
- package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.js +11 -23
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/surface/types.d.ts +15 -36
- package/lib/client/surface/types.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.d.ts +0 -2
- package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.js +0 -17
- package/lib/client/view/worktree-error-copy.js.map +1 -1
- package/lib/client/view/worktree-view-errors.d.ts +0 -10
- package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
- package/lib/client/view/worktree-view-errors.js +1 -22
- package/lib/client/view/worktree-view-errors.js.map +1 -1
- package/lib/client/view/worktree-view-read.d.ts +12 -3
- package/lib/client/view/worktree-view-read.d.ts.map +1 -1
- package/lib/client/view/worktree-view-read.js +137 -6
- package/lib/client/view/worktree-view-read.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +6 -4
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +24 -4
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client.js +3752 -3822
- package/lib/client.js.map +1 -1
- package/lib/contract/index.contract.js +4 -2
- package/lib/contract/index.contract.js.map +1 -1
- package/lib/contract/index.d.ts +27 -6
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +5 -4
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/session-flow.d.ts +29 -0
- package/lib/contract/session-flow.d.ts.map +1 -0
- package/lib/contract/session-flow.js +2 -0
- package/lib/contract/session-flow.js.map +1 -0
- package/lib/host/dsh-read-adapter.d.ts +14 -0
- package/lib/host/dsh-read-adapter.d.ts.map +1 -1
- package/lib/host/dsh-read-adapter.js +30 -3
- package/lib/host/dsh-read-adapter.js.map +1 -1
- package/lib/host/index.d.ts +0 -4
- package/lib/host/index.d.ts.map +1 -1
- package/lib/host/index.js +0 -2
- package/lib/host/index.js.map +1 -1
- package/lib/host/remote.d.ts +2 -2
- package/lib/host/remote.d.ts.map +1 -1
- package/lib/host/remote.js +11 -7
- package/lib/host/remote.js.map +1 -1
- package/lib/host/service.d.ts +15 -3
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +69 -37
- package/lib/host/service.js.map +1 -1
- package/lib/host/session-creation.d.ts +12 -0
- package/lib/host/session-creation.d.ts.map +1 -0
- package/lib/host/session-creation.js +56 -0
- package/lib/host/session-creation.js.map +1 -0
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/manage/manager-navigation.d.ts +11 -0
- package/lib/manage/manager-navigation.d.ts.map +1 -0
- package/lib/manage/manager-navigation.js +88 -0
- package/lib/manage/manager-navigation.js.map +1 -0
- package/lib/manage/manager-sessions.d.ts +2 -2
- package/lib/manage/manager-sessions.d.ts.map +1 -1
- package/lib/manage/manager-sessions.js +30 -16
- package/lib/manage/manager-sessions.js.map +1 -1
- package/lib/manage/manager-support.d.ts +2 -1
- package/lib/manage/manager-support.d.ts.map +1 -1
- package/lib/manage/manager-support.js +21 -37
- package/lib/manage/manager-support.js.map +1 -1
- package/lib/manage/manager-worktrees.d.ts +3 -1
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +41 -19
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +8 -1
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +35 -37
- package/lib/manage/manager.js.map +1 -1
- package/lib/provider/generated-path.d.ts +7 -0
- package/lib/provider/generated-path.d.ts.map +1 -0
- package/lib/provider/generated-path.js +57 -0
- package/lib/provider/generated-path.js.map +1 -0
- package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
- package/lib/provider/sidecar/sidecar-schema.js +7 -1
- package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
- package/lib/provider/transaction/operations/create.d.ts.map +1 -1
- package/lib/provider/transaction/operations/create.js +2 -0
- package/lib/provider/transaction/operations/create.js.map +1 -1
- package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
- package/lib/provider/transaction/support/path-safety.js +5 -43
- package/lib/provider/transaction/support/path-safety.js.map +1 -1
- package/lib/provider/types.d.ts +2 -0
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/tool/create-session.d.ts +11 -0
- package/lib/tool/create-session.d.ts.map +1 -0
- package/lib/tool/create-session.js +19 -0
- package/lib/tool/create-session.js.map +1 -0
- package/lib/tool/dispatch-session.d.ts.map +1 -1
- package/lib/tool/dispatch-session.js +9 -5
- package/lib/tool/dispatch-session.js.map +1 -1
- package/lib/tool/native-session.d.ts +9 -0
- package/lib/tool/native-session.d.ts.map +1 -1
- package/lib/tool/native-session.js +47 -1
- package/lib/tool/native-session.js.map +1 -1
- package/lib/typert.host.js +338 -120
- package/lib/typert.remote-client.d.ts +9 -5
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +338 -120
- package/package.json +1 -5
- package/lib/client/permission/worktree-permission-icon.d.ts +0 -7
- package/lib/client/permission/worktree-permission-icon.d.ts.map +0 -1
- package/lib/client/permission/worktree-permission-icon.js +0 -119
- package/lib/client/permission/worktree-permission-icon.js.map +0 -1
- package/lib/client/permission/worktree-permission.d.ts +0 -21
- package/lib/client/permission/worktree-permission.d.ts.map +0 -1
- package/lib/client/permission/worktree-permission.js +0 -78
- package/lib/client/permission/worktree-permission.js.map +0 -1
- package/lib/client/surface/components/AccessConfirmation.d.ts +0 -9
- package/lib/client/surface/components/AccessConfirmation.d.ts.map +0 -1
- package/lib/client/surface/components/AccessConfirmation.js +0 -18
- package/lib/client/surface/components/AccessConfirmation.js.map +0 -1
- package/lib/contract/worktree-permission.d.ts +0 -75
- package/lib/contract/worktree-permission.d.ts.map +0 -1
- package/lib/contract/worktree-permission.js +0 -32
- package/lib/contract/worktree-permission.js.map +0 -1
- package/lib/host/permission-preset-append.d.ts +0 -15
- package/lib/host/permission-preset-append.d.ts.map +0 -1
- package/lib/host/permission-preset-append.js +0 -63
- package/lib/host/permission-preset-append.js.map +0 -1
- package/lib/host/worktree-permission-manager.d.ts +0 -14
- package/lib/host/worktree-permission-manager.d.ts.map +0 -1
- package/lib/host/worktree-permission-manager.js +0 -115
- package/lib/host/worktree-permission-manager.js.map +0 -1
- package/lib/host/worktree-permission.d.ts +0 -51
- package/lib/host/worktree-permission.d.ts.map +0 -1
- package/lib/host/worktree-permission.js +0 -251
- package/lib/host/worktree-permission.js.map +0 -1
- package/lib/manage/worktree-permission.d.ts +0 -3
- package/lib/manage/worktree-permission.d.ts.map +0 -1
- package/lib/manage/worktree-permission.js +0 -3
- package/lib/manage/worktree-permission.js.map +0 -1
package/lib/host/service.js
CHANGED
|
@@ -39,9 +39,10 @@ import { createWorktreeManager } from '../manage/index.js';
|
|
|
39
39
|
import { DshHostReadAdapter } from './dsh-read-adapter.js';
|
|
40
40
|
import { createWorktreeRemoteProjection, project } from './remote.js';
|
|
41
41
|
import { createBaselineSync } from './baseline-sync.js';
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
42
|
+
import { createWorktreeSessionCreation } from './session-creation.js';
|
|
43
|
+
import { createWorktreeError } from '../contract/index.js';
|
|
44
44
|
import { registerWorktreeTools, createWorktreeToolSessionPort } from '../tool/index.js';
|
|
45
|
+
import { createNativeWorktreeSessionDirectoryPort } from '../tool/native-session.js';
|
|
45
46
|
import { WorktreeToolChanges } from './worktree-tool-changes.js';
|
|
46
47
|
import { WorktreeToolSettings } from './tool-settings.js';
|
|
47
48
|
/**
|
|
@@ -59,6 +60,8 @@ import { WorktreeToolSettings } from './tool-settings.js';
|
|
|
59
60
|
let WorktreeRemoteService = (() => {
|
|
60
61
|
let _classSuper = TypertRemoteService;
|
|
61
62
|
let _instanceExtraInitializers = [];
|
|
63
|
+
let _canReuseLocalSession_decorators;
|
|
64
|
+
let _createWorktreeSession_decorators;
|
|
62
65
|
let _syncWorktreeBaseline_decorators;
|
|
63
66
|
let _getToolSettings_decorators;
|
|
64
67
|
let _updateToolSettings_decorators;
|
|
@@ -67,7 +70,9 @@ let WorktreeRemoteService = (() => {
|
|
|
67
70
|
let _updateWorktreeInstructions_decorators;
|
|
68
71
|
let _updateWorktreeBaseBranch_decorators;
|
|
69
72
|
let _getWorkspaceGitState_decorators;
|
|
73
|
+
let _readWorkspaceNavigation_decorators;
|
|
70
74
|
let _listWorktrees_decorators;
|
|
75
|
+
let _readWorktreeSessionState_decorators;
|
|
71
76
|
let _listWorktreeCommits_decorators;
|
|
72
77
|
let _listWorktreeCommitFiles_decorators;
|
|
73
78
|
let _getWorktreeCommitFileDiff_decorators;
|
|
@@ -86,11 +91,11 @@ let WorktreeRemoteService = (() => {
|
|
|
86
91
|
let _insertWorktreeBefore_decorators;
|
|
87
92
|
let _listBindings_decorators;
|
|
88
93
|
let _bindSession_decorators;
|
|
89
|
-
let _ensureWorktreePermission_decorators;
|
|
90
|
-
let _normalizeDetachedWorktreePermissions_decorators;
|
|
91
94
|
return class WorktreeRemoteService extends _classSuper {
|
|
92
95
|
static {
|
|
93
96
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
97
|
+
_canReuseLocalSession_decorators = [Remote];
|
|
98
|
+
_createWorktreeSession_decorators = [Remote];
|
|
94
99
|
_syncWorktreeBaseline_decorators = [Remote];
|
|
95
100
|
_getToolSettings_decorators = [Remote];
|
|
96
101
|
_updateToolSettings_decorators = [Remote];
|
|
@@ -99,7 +104,9 @@ let WorktreeRemoteService = (() => {
|
|
|
99
104
|
_updateWorktreeInstructions_decorators = [Remote];
|
|
100
105
|
_updateWorktreeBaseBranch_decorators = [Remote];
|
|
101
106
|
_getWorkspaceGitState_decorators = [Remote];
|
|
107
|
+
_readWorkspaceNavigation_decorators = [Remote];
|
|
102
108
|
_listWorktrees_decorators = [Remote];
|
|
109
|
+
_readWorktreeSessionState_decorators = [Remote];
|
|
103
110
|
_listWorktreeCommits_decorators = [Remote];
|
|
104
111
|
_listWorktreeCommitFiles_decorators = [Remote];
|
|
105
112
|
_getWorktreeCommitFileDiff_decorators = [Remote];
|
|
@@ -118,8 +125,8 @@ let WorktreeRemoteService = (() => {
|
|
|
118
125
|
_insertWorktreeBefore_decorators = [Remote];
|
|
119
126
|
_listBindings_decorators = [Remote];
|
|
120
127
|
_bindSession_decorators = [Remote];
|
|
121
|
-
|
|
122
|
-
|
|
128
|
+
__esDecorate(this, null, _canReuseLocalSession_decorators, { kind: "method", name: "canReuseLocalSession", static: false, private: false, access: { has: obj => "canReuseLocalSession" in obj, get: obj => obj.canReuseLocalSession }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
129
|
+
__esDecorate(this, null, _createWorktreeSession_decorators, { kind: "method", name: "createWorktreeSession", static: false, private: false, access: { has: obj => "createWorktreeSession" in obj, get: obj => obj.createWorktreeSession }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
123
130
|
__esDecorate(this, null, _syncWorktreeBaseline_decorators, { kind: "method", name: "syncWorktreeBaseline", static: false, private: false, access: { has: obj => "syncWorktreeBaseline" in obj, get: obj => obj.syncWorktreeBaseline }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
124
131
|
__esDecorate(this, null, _getToolSettings_decorators, { kind: "method", name: "getToolSettings", static: false, private: false, access: { has: obj => "getToolSettings" in obj, get: obj => obj.getToolSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
125
132
|
__esDecorate(this, null, _updateToolSettings_decorators, { kind: "method", name: "updateToolSettings", static: false, private: false, access: { has: obj => "updateToolSettings" in obj, get: obj => obj.updateToolSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -128,7 +135,9 @@ let WorktreeRemoteService = (() => {
|
|
|
128
135
|
__esDecorate(this, null, _updateWorktreeInstructions_decorators, { kind: "method", name: "updateWorktreeInstructions", static: false, private: false, access: { has: obj => "updateWorktreeInstructions" in obj, get: obj => obj.updateWorktreeInstructions }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
129
136
|
__esDecorate(this, null, _updateWorktreeBaseBranch_decorators, { kind: "method", name: "updateWorktreeBaseBranch", static: false, private: false, access: { has: obj => "updateWorktreeBaseBranch" in obj, get: obj => obj.updateWorktreeBaseBranch }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
130
137
|
__esDecorate(this, null, _getWorkspaceGitState_decorators, { kind: "method", name: "getWorkspaceGitState", static: false, private: false, access: { has: obj => "getWorkspaceGitState" in obj, get: obj => obj.getWorkspaceGitState }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
138
|
+
__esDecorate(this, null, _readWorkspaceNavigation_decorators, { kind: "method", name: "readWorkspaceNavigation", static: false, private: false, access: { has: obj => "readWorkspaceNavigation" in obj, get: obj => obj.readWorkspaceNavigation }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
131
139
|
__esDecorate(this, null, _listWorktrees_decorators, { kind: "method", name: "listWorktrees", static: false, private: false, access: { has: obj => "listWorktrees" in obj, get: obj => obj.listWorktrees }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
140
|
+
__esDecorate(this, null, _readWorktreeSessionState_decorators, { kind: "method", name: "readWorktreeSessionState", static: false, private: false, access: { has: obj => "readWorktreeSessionState" in obj, get: obj => obj.readWorktreeSessionState }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
132
141
|
__esDecorate(this, null, _listWorktreeCommits_decorators, { kind: "method", name: "listWorktreeCommits", static: false, private: false, access: { has: obj => "listWorktreeCommits" in obj, get: obj => obj.listWorktreeCommits }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
133
142
|
__esDecorate(this, null, _listWorktreeCommitFiles_decorators, { kind: "method", name: "listWorktreeCommitFiles", static: false, private: false, access: { has: obj => "listWorktreeCommitFiles" in obj, get: obj => obj.listWorktreeCommitFiles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
134
143
|
__esDecorate(this, null, _getWorktreeCommitFileDiff_decorators, { kind: "method", name: "getWorktreeCommitFileDiff", static: false, private: false, access: { has: obj => "getWorktreeCommitFileDiff" in obj, get: obj => obj.getWorktreeCommitFileDiff }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -147,8 +156,6 @@ let WorktreeRemoteService = (() => {
|
|
|
147
156
|
__esDecorate(this, null, _insertWorktreeBefore_decorators, { kind: "method", name: "insertWorktreeBefore", static: false, private: false, access: { has: obj => "insertWorktreeBefore" in obj, get: obj => obj.insertWorktreeBefore }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
148
157
|
__esDecorate(this, null, _listBindings_decorators, { kind: "method", name: "listBindings", static: false, private: false, access: { has: obj => "listBindings" in obj, get: obj => obj.listBindings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
149
158
|
__esDecorate(this, null, _bindSession_decorators, { kind: "method", name: "bindSession", static: false, private: false, access: { has: obj => "bindSession" in obj, get: obj => obj.bindSession }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
150
|
-
__esDecorate(this, null, _ensureWorktreePermission_decorators, { kind: "method", name: "ensureWorktreePermission", static: false, private: false, access: { has: obj => "ensureWorktreePermission" in obj, get: obj => obj.ensureWorktreePermission }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
151
|
-
__esDecorate(this, null, _normalizeDetachedWorktreePermissions_decorators, { kind: "method", name: "normalizeDetachedWorktreePermissions", static: false, private: false, access: { has: obj => "normalizeDetachedWorktreePermissions" in obj, get: obj => obj.normalizeDetachedWorktreePermissions }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
152
159
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
153
160
|
}
|
|
154
161
|
// Cordis 在实例化前保证这三个只读 Host 服务可用;这里不注入任何 DSH mutation API。
|
|
@@ -161,6 +168,7 @@ let WorktreeRemoteService = (() => {
|
|
|
161
168
|
toolChanges = new WorktreeToolChanges();
|
|
162
169
|
toolSettings;
|
|
163
170
|
baselineSync;
|
|
171
|
+
sessionCreation;
|
|
164
172
|
/**
|
|
165
173
|
* 为当前 Cordis fiber 建立一次 Host 组合,并复用同一个 Remote projection 处理调用。
|
|
166
174
|
* Builds the Host composition once for the current Cordis fiber and reuses one Remote
|
|
@@ -174,7 +182,20 @@ let WorktreeRemoteService = (() => {
|
|
|
174
182
|
disposed = true;
|
|
175
183
|
}, 'clutch-dsh-worktree: activity reader disposal');
|
|
176
184
|
const activitySource = ctx.get('activitySource');
|
|
177
|
-
const
|
|
185
|
+
const native = ctx;
|
|
186
|
+
const dsh = new DshHostReadAdapter({
|
|
187
|
+
workspaceRegistry: native.workspaceRegistry,
|
|
188
|
+
sessions: native.sessions,
|
|
189
|
+
sessionPersistence: native.sessionPersistence,
|
|
190
|
+
// Optional sibling services must use get(); undeclared Context property reads throw.
|
|
191
|
+
// Resolve on each call so late mounting and replacement remain visible.
|
|
192
|
+
get workingDirectory() {
|
|
193
|
+
return ctx.get('workingDirectory');
|
|
194
|
+
},
|
|
195
|
+
get sessionQuery() {
|
|
196
|
+
return ctx.get('sessionQuery');
|
|
197
|
+
},
|
|
198
|
+
}, {
|
|
178
199
|
activitySource,
|
|
179
200
|
isDisposed: () => disposed,
|
|
180
201
|
});
|
|
@@ -187,6 +208,17 @@ let WorktreeRemoteService = (() => {
|
|
|
187
208
|
});
|
|
188
209
|
this.manager = manager;
|
|
189
210
|
ctx.effect(() => () => this.toolChanges.dispose(), 'clutch-dsh-worktree: tool change cleanup');
|
|
211
|
+
ctx.inject(['sessionController', 'agents'], (sessionCtx) => {
|
|
212
|
+
const sessions = createNativeWorktreeSessionDirectoryPort(sessionCtx);
|
|
213
|
+
const creation = createWorktreeSessionCreation({ manager, sessions,
|
|
214
|
+
changed: (workspaceId, worktreeId, requestId) => this.toolChanges.changed(workspaceId, worktreeId, requestId) });
|
|
215
|
+
this.sessionCreation = creation;
|
|
216
|
+
sessionCtx.effect(() => () => {
|
|
217
|
+
creation.dispose();
|
|
218
|
+
if (this.sessionCreation === creation)
|
|
219
|
+
this.sessionCreation = undefined;
|
|
220
|
+
});
|
|
221
|
+
});
|
|
190
222
|
// Optional command composition keeps the read-only Provider adapter unchanged.
|
|
191
223
|
ctx.inject(['commands', 'tools', 'sessionController', 'sessionQuery', 'agents', 'llm', 'systemPrompt'], (toolCtx) => {
|
|
192
224
|
const sessions = createWorktreeToolSessionPort(toolCtx);
|
|
@@ -211,34 +243,34 @@ let WorktreeRemoteService = (() => {
|
|
|
211
243
|
});
|
|
212
244
|
registerWorktreeInstructions(ctx, (sessionId) => manager.resolveSessionInstructions(sessionId), () => disposed);
|
|
213
245
|
ctx.effect(() => () => this.manager.close(), 'clutch-dsh-worktree: Host manager cleanup');
|
|
214
|
-
|
|
215
|
-
// remounting this Host. Read the owning Context at call time, never capture
|
|
216
|
-
// a provider instance; older profiles remain loadable and fail closed.
|
|
217
|
-
const permissionAdapter = createDshWorktreePermissionAdapter({
|
|
218
|
-
sessions: {
|
|
219
|
-
get: (sessionId) => ctx.sessions.get(sessionId),
|
|
220
|
-
},
|
|
221
|
-
get permissionPresets() {
|
|
222
|
-
return ctx.get('permissionPresets');
|
|
223
|
-
},
|
|
224
|
-
get sandboxPolicy() {
|
|
225
|
-
return ctx.get('sandboxPolicy');
|
|
226
|
-
},
|
|
227
|
-
get approval() {
|
|
228
|
-
return ctx.get('approval');
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
this.remote = createWorktreeRemoteProjection(manager, createWorktreePermissionManager({
|
|
232
|
-
manager,
|
|
233
|
-
dsh,
|
|
234
|
-
permissions: permissionAdapter,
|
|
235
|
-
}));
|
|
246
|
+
this.remote = createWorktreeRemoteProjection(manager);
|
|
236
247
|
}
|
|
237
248
|
// 这些方法保持为薄边界,生成的 Typert 描述符只看到 contract-safe 签名;错误归一化
|
|
238
249
|
// 和 JSON 投影集中由 `createWorktreeRemoteProjection` 负责。
|
|
239
250
|
// These methods stay deliberately thin so generated Typert descriptors see only
|
|
240
251
|
// contract-safe signatures; error normalization and JSON projection remain centralized
|
|
241
252
|
// in `createWorktreeRemoteProjection`.
|
|
253
|
+
canReuseLocalSession(input) {
|
|
254
|
+
return project(async () => {
|
|
255
|
+
const workspace = await this.dsh.getWorkspace(input.workspaceId);
|
|
256
|
+
const bindings = await this.manager.listBindings(input);
|
|
257
|
+
const session = await this.dsh.getSession(input.sessionId);
|
|
258
|
+
if (session && session.originalCwd === undefined) {
|
|
259
|
+
throw createWorktreeError('SESSION_CWD_MISMATCH', 'Native execution directory is unavailable.');
|
|
260
|
+
}
|
|
261
|
+
return !!workspace && !!session && session.sessionId === input.sessionId &&
|
|
262
|
+
session.workspaceId === input.workspaceId &&
|
|
263
|
+
!bindings.some((binding) => binding.sessionId === input.sessionId) &&
|
|
264
|
+
await samePhysicalPath(session.cwd, workspace.rootPath);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
createWorktreeSession(input, signal) {
|
|
268
|
+
return project(() => {
|
|
269
|
+
if (!this.sessionCreation)
|
|
270
|
+
throw createWorktreeError('WORKTREE_STATE_CONFLICT', 'Native Session creation capability is unavailable.');
|
|
271
|
+
return this.sessionCreation.create(input, signal);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
242
274
|
syncWorktreeBaseline(input, signal) {
|
|
243
275
|
return project(() => {
|
|
244
276
|
if (!this.baselineSync)
|
|
@@ -283,9 +315,15 @@ let WorktreeRemoteService = (() => {
|
|
|
283
315
|
getWorkspaceGitState(input) {
|
|
284
316
|
return this.remote.getWorkspaceGitState(input);
|
|
285
317
|
}
|
|
318
|
+
readWorkspaceNavigation(input) {
|
|
319
|
+
return this.remote.readWorkspaceNavigation(input);
|
|
320
|
+
}
|
|
286
321
|
listWorktrees(input) {
|
|
287
322
|
return this.remote.listWorktrees(input);
|
|
288
323
|
}
|
|
324
|
+
readWorktreeSessionState(input) {
|
|
325
|
+
return this.remote.readWorktreeSessionState(input);
|
|
326
|
+
}
|
|
289
327
|
listWorktreeCommits(input) {
|
|
290
328
|
return this.remote.listWorktreeCommits(input);
|
|
291
329
|
}
|
|
@@ -340,12 +378,6 @@ let WorktreeRemoteService = (() => {
|
|
|
340
378
|
bindSession(input) {
|
|
341
379
|
return this.remote.bindSession(input);
|
|
342
380
|
}
|
|
343
|
-
ensureWorktreePermission(input) {
|
|
344
|
-
return this.remote.ensureWorktreePermission(input);
|
|
345
|
-
}
|
|
346
|
-
normalizeDetachedWorktreePermissions(input) {
|
|
347
|
-
return this.remote.normalizeDetachedWorktreePermissions(input);
|
|
348
|
-
}
|
|
349
381
|
};
|
|
350
382
|
})();
|
|
351
383
|
export { WorktreeRemoteService };
|
package/lib/host/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/host/service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EACL,4BAA4B,GAE7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/host/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WorktreeManager, WorktreeSessionCreationRequest, WorktreeSessionCreationResult } from '../contract/index.js';
|
|
2
|
+
import { type WorktreeToolSessionPort } from '../tool/native-session.js';
|
|
3
|
+
/** One native admission identity per browser action, without persistent task/message state. */
|
|
4
|
+
export declare function createWorktreeSessionCreation(options: {
|
|
5
|
+
manager: Pick<WorktreeManager, 'listWorktrees' | 'bindSession' | 'readWorktreeSessionState'>;
|
|
6
|
+
sessions: Pick<WorktreeToolSessionPort, 'create' | 'enterWorkingDirectory'>;
|
|
7
|
+
changed(workspaceId: string, worktreeId: string, requestId: string): void;
|
|
8
|
+
}): {
|
|
9
|
+
dispose(): void;
|
|
10
|
+
create(input: WorktreeSessionCreationRequest, signal: AbortSignal): Promise<WorktreeSessionCreationResult>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=session-creation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-creation.d.ts","sourceRoot":"","sources":["../../src/host/session-creation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAE3H,OAAO,EAAuC,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE9G,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC;IAC7F,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,GAAG,uBAAuB,CAAC,CAAC;IAC5E,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E;;kBAKiB,8BAA8B,UAAU,WAAW,GAAG,OAAO,CAAC,6BAA6B,CAAC;EA2C7G"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createWorktreeError } from '../contract/index.js';
|
|
2
|
+
import { createBoundWorktreeSession } from '../tool/create-session.js';
|
|
3
|
+
import { NativeSessionCreationPreflightError } from '../tool/native-session.js';
|
|
4
|
+
/** One native admission identity per browser action, without persistent task/message state. */
|
|
5
|
+
export function createWorktreeSessionCreation(options) {
|
|
6
|
+
const lifetime = new AbortController();
|
|
7
|
+
const requests = new Map();
|
|
8
|
+
return {
|
|
9
|
+
dispose() { lifetime.abort(); requests.clear(); },
|
|
10
|
+
create(input, signal) {
|
|
11
|
+
const conflict = (text) => createWorktreeError('WORKTREE_STATE_CONFLICT', text);
|
|
12
|
+
if (!input || typeof input.workspaceId !== 'string' || typeof input.worktreeId !== 'string' ||
|
|
13
|
+
typeof input.requestId !== 'string' || !/^[A-Za-z0-9:_-]{1,160}$/u.test(input.requestId))
|
|
14
|
+
return Promise.reject(conflict('Invalid Worktree Session creation request.'));
|
|
15
|
+
const payload = JSON.stringify([input.workspaceId, input.worktreeId]);
|
|
16
|
+
const known = requests.get(input.requestId);
|
|
17
|
+
if (known)
|
|
18
|
+
return known.payload === payload ? known.promise : Promise.reject(conflict('Request id belongs to another Worktree.'));
|
|
19
|
+
if (requests.size >= 512)
|
|
20
|
+
return Promise.reject(conflict('Session creation capacity reached; reload the plugin.'));
|
|
21
|
+
const combined = AbortSignal.any([signal, lifetime.signal]);
|
|
22
|
+
const check = () => combined.throwIfAborted();
|
|
23
|
+
let creationAttempted = false;
|
|
24
|
+
const promise = (async () => {
|
|
25
|
+
check();
|
|
26
|
+
const record = options.manager.readWorktreeSessionState
|
|
27
|
+
? (await options.manager.readWorktreeSessionState(input)).target
|
|
28
|
+
: (await options.manager.listWorktrees(input)).find((item) => item.worktreeId === input.worktreeId);
|
|
29
|
+
if (!record || record.workspaceId !== input.workspaceId || record.status !== 'active' ||
|
|
30
|
+
record.diskCleanup === 'completed' || (record.health !== undefined && record.health !== 'ready'))
|
|
31
|
+
throw conflict('Worktree is unavailable; refresh or repair it before creating a Session.');
|
|
32
|
+
check();
|
|
33
|
+
// From this boundary onward, even a rejected create can have an uncertain native result.
|
|
34
|
+
creationAttempted = true;
|
|
35
|
+
const result = await createBoundWorktreeSession({ record, manager: options.manager, sessions: options.sessions, signal: combined, check });
|
|
36
|
+
// A post-commit snapshot also detects deletion/rebinding during native creation.
|
|
37
|
+
// Do not turn a projection failure into an uncertain native creation failure.
|
|
38
|
+
const state = result.bound && options.manager.readWorktreeSessionState
|
|
39
|
+
? await options.manager.readWorktreeSessionState(input).catch(() => undefined) : undefined;
|
|
40
|
+
// Other connected Clients may refresh Git on notification. Prepare this
|
|
41
|
+
// response first so those reads do not compete with its post-commit read.
|
|
42
|
+
// Projection failure still notifies and keeps the successful native result.
|
|
43
|
+
options.changed(input.workspaceId, input.worktreeId, input.requestId);
|
|
44
|
+
return { ...result, ...(state === undefined ? {} : { state }) };
|
|
45
|
+
})().catch((error) => {
|
|
46
|
+
if ((!creationAttempted || error instanceof NativeSessionCreationPreflightError) &&
|
|
47
|
+
requests.get(input.requestId)?.promise === promise)
|
|
48
|
+
requests.delete(input.requestId);
|
|
49
|
+
throw error;
|
|
50
|
+
});
|
|
51
|
+
requests.set(input.requestId, { payload, promise });
|
|
52
|
+
return promise;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=session-creation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-creation.js","sourceRoot":"","sources":["../../src/host/session-creation.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
export { WORKTREE_ERROR_CODES, WORKTREE_REMOTE_METHODS, createWorktreeError, } from './contract/index.js';
|
|
13
|
-
export {
|
|
14
|
-
export type { AdoptWorktreeBranchInput, BranchRecord, BindingStatus, JsonPrimitive, JsonValue, SessionBinding, WorktreeError, WorktreeErrorCode, WorktreeErrorDetails, WorktreeManager, WorktreeBaselineSyncRequest, WorktreeSessionDispatchResult, WorktreeSyncStrategy, WorktreeBaselineSyncManager, WorktreeGitBaseline, WorktreeGitChangedFile, WorktreeGitCommit, WorktreeGitCommitFiles, WorktreeGitCommitFilesRequest, WorktreeGitCommitKind, WorktreeGitDiffRequest, WorktreeGitDiffSegment, WorktreeGitDiffSelection, WorktreeGitFileDiff, WorktreeGitFileDiffRequest, WorktreeGitFileStatus, WorktreeGitHistory, WorktreeGitRequestContext, WorktreeImportCandidate, WorktreeRemoteManager, WorktreeRemoteMethod, WorktreeRemoteResult, WorktreeRecord, WorktreeStatus, WorktreeSource, WorktreeId, WorkspaceId, SessionId,
|
|
13
|
+
export { WORKTREE_GIT_SUMMARY, WORKTREE_GIT_WORKING_TREE } from './contract/index.js';
|
|
14
|
+
export type { AdoptWorktreeBranchInput, BranchRecord, BindingStatus, JsonPrimitive, JsonValue, SessionBinding, WorktreeError, WorktreeErrorCode, WorktreeErrorDetails, WorktreeManager, WorktreeBaselineSyncRequest, WorktreeSessionDispatchResult, WorktreeSyncStrategy, WorktreeBaselineSyncManager, WorktreeGitBaseline, WorktreeGitChangedFile, WorktreeGitCommit, WorktreeGitCommitFiles, WorktreeGitCommitFilesRequest, WorktreeGitCommitKind, WorktreeGitDiffRequest, WorktreeGitDiffSegment, WorktreeGitDiffSelection, WorktreeGitFileDiff, WorktreeGitFileDiffRequest, WorktreeGitFileStatus, WorktreeGitHistory, WorktreeGitRequestContext, WorktreeImportCandidate, WorktreeRemoteManager, WorktreeRemoteMethod, WorktreeRemoteResult, WorktreeRecord, WorktreeStatus, WorktreeSource, WorktreeId, WorkspaceId, SessionId, } from './contract/index.js';
|
|
15
15
|
export { LocalGitAdapter } from './provider/git/adapter.js';
|
|
16
16
|
export { CrossProcessMutationLock, WorktreeMutationTransaction, createWorktreeMutationToken, createRepositoryFingerprint, } from './provider/index.js';
|
|
17
17
|
export { SUPPORTED_SIDECAR_SCHEMA_VERSIONS, WorkspaceShardedSidecarRepository, migrateSidecarSnapshot, validateSidecarSnapshot, } from './provider/sidecar/repository.js';
|
|
@@ -19,7 +19,7 @@ export { LEGACY_SIDECAR_SCHEMA_VERSION, SIDECAR_SCHEMA_VERSION, WorktreeProvider
|
|
|
19
19
|
export type { DshReadAdapter, DshSessionSummary, DshWorkspaceSummary, GitBranchWorktreeInfo, GitCommandOptions, GitRepositoryInspection, GitSubprocessRuntime, GitWorktreeAdapter, GitWorktreeInfo, LockedSidecarStore, PendingOperation, RecoveryIssue, RepositoryIdentity, SidecarMutation, SidecarSnapshot, SidecarStore, } from './provider/types.js';
|
|
20
20
|
export { WorktreeManagerImpl, createWorktreeManager } from './manage/index.js';
|
|
21
21
|
export type { RuntimeCwdInput, WorktreeManagerOptions, WorktreeManagerService, } from './manage/index.js';
|
|
22
|
-
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection,
|
|
23
|
-
export type { DshHostReadContext,
|
|
22
|
+
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, } from './host/index.js';
|
|
23
|
+
export type { DshHostReadContext, WorktreeHostConfig, } from './host/index.js';
|
|
24
24
|
export { WorktreeRemoteService as default } from './host/index.js';
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EACV,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EACjC,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
export { WORKTREE_ERROR_CODES, WORKTREE_REMOTE_METHODS, createWorktreeError, } from './contract/index.js';
|
|
13
|
-
export {
|
|
13
|
+
export { WORKTREE_GIT_SUMMARY, WORKTREE_GIT_WORKING_TREE } from './contract/index.js';
|
|
14
14
|
export { LocalGitAdapter } from './provider/git/adapter.js';
|
|
15
15
|
export { CrossProcessMutationLock, WorktreeMutationTransaction, createWorktreeMutationToken, createRepositoryFingerprint, } from './provider/index.js';
|
|
16
16
|
export { SUPPORTED_SIDECAR_SCHEMA_VERSIONS, WorkspaceShardedSidecarRepository, migrateSidecarSnapshot, validateSidecarSnapshot, } from './provider/sidecar/repository.js';
|
|
17
17
|
export { LEGACY_SIDECAR_SCHEMA_VERSION, SIDECAR_SCHEMA_VERSION, WorktreeProviderError, isWorktreeProviderError, providerError, } from './provider/types.js';
|
|
18
18
|
export { WorktreeManagerImpl, createWorktreeManager } from './manage/index.js';
|
|
19
|
-
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection,
|
|
19
|
+
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, } from './host/index.js';
|
|
20
20
|
// bundle patch 以默认导出装载同一个 Cordis 服务;命名导出保留给显式 Host 组合。
|
|
21
21
|
// The bundle patch loads the same Cordis service through the default export; the named
|
|
22
22
|
// export remains available to explicit Host compositions.
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAyCtF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EACjC,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM/E,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAMzB,uDAAuD;AACvD,uFAAuF;AACvF,0DAA0D;AAC1D,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type WorkspaceNavigation } from '../contract/index.js';
|
|
2
|
+
import type { WorkspaceCheckout, WorkspaceId } from '../contract/index.js';
|
|
3
|
+
import type { WorktreeManagerContext } from './manager-context.js';
|
|
4
|
+
/** Request-local facts only. Never passed to transactions or retained after this read. */
|
|
5
|
+
export declare function readWorkspaceNavigation(context: WorktreeManagerContext, input: {
|
|
6
|
+
workspaceId: WorkspaceId;
|
|
7
|
+
}): Promise<WorkspaceNavigation>;
|
|
8
|
+
export declare function getWorkspaceCheckout(context: WorktreeManagerContext, input: {
|
|
9
|
+
workspaceId: WorkspaceId;
|
|
10
|
+
}): Promise<WorkspaceCheckout>;
|
|
11
|
+
//# sourceMappingURL=manager-navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager-navigation.d.ts","sourceRoot":"","sources":["../../src/manage/manager-navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,0FAA0F;AAC1F,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,GAClC,OAAO,CAAC,mBAAmB,CAAC,CA8C9B;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8B3I"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { realpath } from 'node:fs/promises';
|
|
2
|
+
import { WORKTREE_ERROR_CODES } from '../contract/index.js';
|
|
3
|
+
import { getWorkspaceGitState, listWorktrees } from './manager-worktrees.js';
|
|
4
|
+
import { requireWorkspaceForRead, requireWorkspaceRoot, samePhysicalPath } from './manager-support.js';
|
|
5
|
+
/** Request-local facts only. Never passed to transactions or retained after this read. */
|
|
6
|
+
export async function readWorkspaceNavigation(context, input) {
|
|
7
|
+
await requireWorkspaceForRead(context, input.workspaceId);
|
|
8
|
+
const snapshot = await context.sidecar.read(input.workspaceId);
|
|
9
|
+
const facts = new Map();
|
|
10
|
+
const sharedMethods = new Set(['validateRepository', 'resolveRepositoryRoot', 'listWorktrees', 'resolveCheckoutHead']);
|
|
11
|
+
const git = new Proxy(context.git, {
|
|
12
|
+
get(target, property) {
|
|
13
|
+
const value = Reflect.get(target, property);
|
|
14
|
+
if (typeof value !== 'function')
|
|
15
|
+
return value;
|
|
16
|
+
if (!sharedMethods.has(String(property)))
|
|
17
|
+
return value.bind(target);
|
|
18
|
+
return (...args) => {
|
|
19
|
+
// Options carry the same lifecycle signal throughout this request.
|
|
20
|
+
const key = String(property) + JSON.stringify(property === 'resolveCheckoutHead' ? args.slice(0, 2) : args.slice(0, 1));
|
|
21
|
+
let pending = facts.get(key);
|
|
22
|
+
if (!pending) {
|
|
23
|
+
const optionsIndex = property === 'resolveCheckoutHead' ? 2 : 1;
|
|
24
|
+
const options = args[optionsIndex];
|
|
25
|
+
args[optionsIndex] = { ...options, signal: context.signal };
|
|
26
|
+
pending = Promise.resolve().then(() => value.apply(target, args));
|
|
27
|
+
facts.set(key, pending);
|
|
28
|
+
}
|
|
29
|
+
return pending;
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
const scoped = { ...context, git };
|
|
34
|
+
const [records, state, checkout] = await Promise.allSettled([
|
|
35
|
+
listWorktrees(scoped, input, snapshot),
|
|
36
|
+
getWorkspaceGitState(scoped, input),
|
|
37
|
+
getWorkspaceCheckout(scoped, input),
|
|
38
|
+
]);
|
|
39
|
+
if (records.status === 'rejected')
|
|
40
|
+
throw records.reason;
|
|
41
|
+
let gitState;
|
|
42
|
+
if (state.status === 'fulfilled')
|
|
43
|
+
gitState = { ok: true, value: state.value };
|
|
44
|
+
else {
|
|
45
|
+
const error = state.reason;
|
|
46
|
+
if (!error || typeof error !== 'object' || Array.isArray(error) ||
|
|
47
|
+
!WORKTREE_ERROR_CODES.includes(error.code) || typeof error.message !== 'string' ||
|
|
48
|
+
!error.details || typeof error.details !== 'object' || Array.isArray(error.details))
|
|
49
|
+
throw state.reason;
|
|
50
|
+
gitState = { ok: false, error: { code: error.code, message: error.message, details: error.details } };
|
|
51
|
+
}
|
|
52
|
+
return { worktrees: records.value, bindings: snapshot.bindings,
|
|
53
|
+
mainInstructions: snapshot.mainInstructions ?? '', gitState,
|
|
54
|
+
...(checkout.status === 'fulfilled' ? { checkout: checkout.value } : {}) };
|
|
55
|
+
}
|
|
56
|
+
export async function getWorkspaceCheckout(context, input) {
|
|
57
|
+
const workspace = await requireWorkspaceForRead(context, input.workspaceId);
|
|
58
|
+
await requireWorkspaceRoot(workspace);
|
|
59
|
+
const options = { signal: context.signal };
|
|
60
|
+
await context.git.validateRepository(workspace.rootPath, options);
|
|
61
|
+
const gitRootPath = context.git.resolveRepositoryRoot
|
|
62
|
+
? await context.git.resolveRepositoryRoot(workspace.rootPath, options)
|
|
63
|
+
: workspace.rootPath;
|
|
64
|
+
const worktrees = await context.git.listWorktrees(gitRootPath, options);
|
|
65
|
+
const workspacePath = await realpath(workspace.rootPath);
|
|
66
|
+
for (const worktree of worktrees) {
|
|
67
|
+
if (await samePhysicalPath(worktree.absolutePath, gitRootPath)) {
|
|
68
|
+
let currentHead = worktree.currentHead;
|
|
69
|
+
try {
|
|
70
|
+
currentHead = context.git.resolveCheckoutHead
|
|
71
|
+
? await context.git.resolveCheckoutHead(gitRootPath, worktree, options)
|
|
72
|
+
: currentHead ?? (worktree.headCommit && worktree.branch && !worktree.detached
|
|
73
|
+
? { kind: 'branch', name: worktree.branch, commit: worktree.headCommit }
|
|
74
|
+
: undefined);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
currentHead = undefined;
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
gitRootPath,
|
|
81
|
+
workspacePath,
|
|
82
|
+
...(currentHead === undefined ? {} : { currentHead }),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return { gitRootPath, workspacePath };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=manager-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager-navigation.js","sourceRoot":"","sources":["../../src/manage/manager-navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { WorktreeManagerContext } from './manager-context.js';
|
|
|
4
4
|
export declare function listBindings(context: WorktreeManagerContext, input: {
|
|
5
5
|
readonly workspaceId: WorkspaceId;
|
|
6
6
|
}): Promise<readonly SessionBinding[]>;
|
|
7
|
-
/** Bind
|
|
7
|
+
/** Bind only after DSH has published the target effective directory. */
|
|
8
8
|
export declare function bindSession(context: WorktreeManagerContext, input: {
|
|
9
9
|
readonly workspaceId: WorkspaceId;
|
|
10
10
|
readonly worktreeId: string;
|
|
@@ -15,7 +15,7 @@ export declare function readSessionHead(context: WorktreeManagerContext, input:
|
|
|
15
15
|
readonly workspaceId: WorkspaceId;
|
|
16
16
|
readonly sessionId: string;
|
|
17
17
|
}): Promise<string>;
|
|
18
|
-
/**
|
|
18
|
+
/** Read native execution cwd, or derive it only for legacy adapters without directory facts. */
|
|
19
19
|
export declare function resolveRuntimeCwd(context: WorktreeManagerContext, input: {
|
|
20
20
|
readonly workspaceId: WorkspaceId;
|
|
21
21
|
readonly sessionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-sessions.d.ts","sourceRoot":"","sources":["../../src/manage/manager-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,kEAAkE;AAClE,wBAAsB,YAAY,CAChC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAGpC;AAED,
|
|
1
|
+
{"version":3,"file":"manager-sessions.d.ts","sourceRoot":"","sources":["../../src/manage/manager-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,kEAAkE;AAClE,wBAAsB,YAAY,CAChC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAGpC;AAED,wEAAwE;AACxE,wBAAsB,WAAW,CAC/B,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,cAAc,CAAC,CA0DzB;AAED,6EAA6E;AAC7E,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED,gGAAgG;AAChG,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|