@cerbur/clutch-dsh-worktree 0.1.21 → 0.1.22
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 +39 -38
- package/README.zh.md +33 -28
- package/cordis.patch.yml +0 -8
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +2 -3
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +22 -39
- 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 +0 -26
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +0 -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/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 +13 -26
- package/lib/client/surface/components/SurfaceContent.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/useSurfaceRefresh.d.ts +2 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.js +66 -9
- 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 +3 -22
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/surface/types.d.ts +8 -31
- 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 +3 -1
- package/lib/client/view/worktree-view-read.d.ts.map +1 -1
- package/lib/client/view/worktree-view-read.js +42 -1
- package/lib/client/view/worktree-view-read.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +5 -4
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +6 -4
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client.js +3494 -3751
- package/lib/client.js.map +1 -1
- package/lib/contract/index.contract.js +2 -2
- package/lib/contract/index.contract.js.map +1 -1
- package/lib/contract/index.d.ts +13 -6
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +4 -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 +6 -7
- package/lib/host/remote.js.map +1 -1
- package/lib/host/service.d.ts +12 -3
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +63 -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-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 +5 -1
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +30 -4
- 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 +236 -122
- package/lib/typert.remote-client.d.ts +7 -5
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +236 -122
- 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;
|
|
@@ -68,6 +71,7 @@ let WorktreeRemoteService = (() => {
|
|
|
68
71
|
let _updateWorktreeBaseBranch_decorators;
|
|
69
72
|
let _getWorkspaceGitState_decorators;
|
|
70
73
|
let _listWorktrees_decorators;
|
|
74
|
+
let _readWorktreeSessionState_decorators;
|
|
71
75
|
let _listWorktreeCommits_decorators;
|
|
72
76
|
let _listWorktreeCommitFiles_decorators;
|
|
73
77
|
let _getWorktreeCommitFileDiff_decorators;
|
|
@@ -86,11 +90,11 @@ let WorktreeRemoteService = (() => {
|
|
|
86
90
|
let _insertWorktreeBefore_decorators;
|
|
87
91
|
let _listBindings_decorators;
|
|
88
92
|
let _bindSession_decorators;
|
|
89
|
-
let _ensureWorktreePermission_decorators;
|
|
90
|
-
let _normalizeDetachedWorktreePermissions_decorators;
|
|
91
93
|
return class WorktreeRemoteService extends _classSuper {
|
|
92
94
|
static {
|
|
93
95
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
96
|
+
_canReuseLocalSession_decorators = [Remote];
|
|
97
|
+
_createWorktreeSession_decorators = [Remote];
|
|
94
98
|
_syncWorktreeBaseline_decorators = [Remote];
|
|
95
99
|
_getToolSettings_decorators = [Remote];
|
|
96
100
|
_updateToolSettings_decorators = [Remote];
|
|
@@ -100,6 +104,7 @@ let WorktreeRemoteService = (() => {
|
|
|
100
104
|
_updateWorktreeBaseBranch_decorators = [Remote];
|
|
101
105
|
_getWorkspaceGitState_decorators = [Remote];
|
|
102
106
|
_listWorktrees_decorators = [Remote];
|
|
107
|
+
_readWorktreeSessionState_decorators = [Remote];
|
|
103
108
|
_listWorktreeCommits_decorators = [Remote];
|
|
104
109
|
_listWorktreeCommitFiles_decorators = [Remote];
|
|
105
110
|
_getWorktreeCommitFileDiff_decorators = [Remote];
|
|
@@ -118,8 +123,8 @@ let WorktreeRemoteService = (() => {
|
|
|
118
123
|
_insertWorktreeBefore_decorators = [Remote];
|
|
119
124
|
_listBindings_decorators = [Remote];
|
|
120
125
|
_bindSession_decorators = [Remote];
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
__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);
|
|
127
|
+
__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
128
|
__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
129
|
__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
130
|
__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);
|
|
@@ -129,6 +134,7 @@ let WorktreeRemoteService = (() => {
|
|
|
129
134
|
__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
135
|
__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);
|
|
131
136
|
__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);
|
|
137
|
+
__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
138
|
__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
139
|
__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
140
|
__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 +153,6 @@ let WorktreeRemoteService = (() => {
|
|
|
147
153
|
__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
154
|
__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
155
|
__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
156
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
153
157
|
}
|
|
154
158
|
// Cordis 在实例化前保证这三个只读 Host 服务可用;这里不注入任何 DSH mutation API。
|
|
@@ -161,6 +165,7 @@ let WorktreeRemoteService = (() => {
|
|
|
161
165
|
toolChanges = new WorktreeToolChanges();
|
|
162
166
|
toolSettings;
|
|
163
167
|
baselineSync;
|
|
168
|
+
sessionCreation;
|
|
164
169
|
/**
|
|
165
170
|
* 为当前 Cordis fiber 建立一次 Host 组合,并复用同一个 Remote projection 处理调用。
|
|
166
171
|
* Builds the Host composition once for the current Cordis fiber and reuses one Remote
|
|
@@ -174,7 +179,20 @@ let WorktreeRemoteService = (() => {
|
|
|
174
179
|
disposed = true;
|
|
175
180
|
}, 'clutch-dsh-worktree: activity reader disposal');
|
|
176
181
|
const activitySource = ctx.get('activitySource');
|
|
177
|
-
const
|
|
182
|
+
const native = ctx;
|
|
183
|
+
const dsh = new DshHostReadAdapter({
|
|
184
|
+
workspaceRegistry: native.workspaceRegistry,
|
|
185
|
+
sessions: native.sessions,
|
|
186
|
+
sessionPersistence: native.sessionPersistence,
|
|
187
|
+
// Optional sibling services must use get(); undeclared Context property reads throw.
|
|
188
|
+
// Resolve on each call so late mounting and replacement remain visible.
|
|
189
|
+
get workingDirectory() {
|
|
190
|
+
return ctx.get('workingDirectory');
|
|
191
|
+
},
|
|
192
|
+
get sessionQuery() {
|
|
193
|
+
return ctx.get('sessionQuery');
|
|
194
|
+
},
|
|
195
|
+
}, {
|
|
178
196
|
activitySource,
|
|
179
197
|
isDisposed: () => disposed,
|
|
180
198
|
});
|
|
@@ -187,6 +205,17 @@ let WorktreeRemoteService = (() => {
|
|
|
187
205
|
});
|
|
188
206
|
this.manager = manager;
|
|
189
207
|
ctx.effect(() => () => this.toolChanges.dispose(), 'clutch-dsh-worktree: tool change cleanup');
|
|
208
|
+
ctx.inject(['sessionController', 'agents'], (sessionCtx) => {
|
|
209
|
+
const sessions = createNativeWorktreeSessionDirectoryPort(sessionCtx);
|
|
210
|
+
const creation = createWorktreeSessionCreation({ manager, sessions,
|
|
211
|
+
changed: (workspaceId, worktreeId, requestId) => this.toolChanges.changed(workspaceId, worktreeId, requestId) });
|
|
212
|
+
this.sessionCreation = creation;
|
|
213
|
+
sessionCtx.effect(() => () => {
|
|
214
|
+
creation.dispose();
|
|
215
|
+
if (this.sessionCreation === creation)
|
|
216
|
+
this.sessionCreation = undefined;
|
|
217
|
+
});
|
|
218
|
+
});
|
|
190
219
|
// Optional command composition keeps the read-only Provider adapter unchanged.
|
|
191
220
|
ctx.inject(['commands', 'tools', 'sessionController', 'sessionQuery', 'agents', 'llm', 'systemPrompt'], (toolCtx) => {
|
|
192
221
|
const sessions = createWorktreeToolSessionPort(toolCtx);
|
|
@@ -211,34 +240,34 @@ let WorktreeRemoteService = (() => {
|
|
|
211
240
|
});
|
|
212
241
|
registerWorktreeInstructions(ctx, (sessionId) => manager.resolveSessionInstructions(sessionId), () => disposed);
|
|
213
242
|
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
|
-
}));
|
|
243
|
+
this.remote = createWorktreeRemoteProjection(manager);
|
|
236
244
|
}
|
|
237
245
|
// 这些方法保持为薄边界,生成的 Typert 描述符只看到 contract-safe 签名;错误归一化
|
|
238
246
|
// 和 JSON 投影集中由 `createWorktreeRemoteProjection` 负责。
|
|
239
247
|
// These methods stay deliberately thin so generated Typert descriptors see only
|
|
240
248
|
// contract-safe signatures; error normalization and JSON projection remain centralized
|
|
241
249
|
// in `createWorktreeRemoteProjection`.
|
|
250
|
+
canReuseLocalSession(input) {
|
|
251
|
+
return project(async () => {
|
|
252
|
+
const workspace = await this.dsh.getWorkspace(input.workspaceId);
|
|
253
|
+
const bindings = await this.manager.listBindings(input);
|
|
254
|
+
const session = await this.dsh.getSession(input.sessionId);
|
|
255
|
+
if (session && session.originalCwd === undefined) {
|
|
256
|
+
throw createWorktreeError('SESSION_CWD_MISMATCH', 'Native execution directory is unavailable.');
|
|
257
|
+
}
|
|
258
|
+
return !!workspace && !!session && session.sessionId === input.sessionId &&
|
|
259
|
+
session.workspaceId === input.workspaceId &&
|
|
260
|
+
!bindings.some((binding) => binding.sessionId === input.sessionId) &&
|
|
261
|
+
await samePhysicalPath(session.cwd, workspace.rootPath);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
createWorktreeSession(input, signal) {
|
|
265
|
+
return project(() => {
|
|
266
|
+
if (!this.sessionCreation)
|
|
267
|
+
throw createWorktreeError('WORKTREE_STATE_CONFLICT', 'Native Session creation capability is unavailable.');
|
|
268
|
+
return this.sessionCreation.create(input, signal);
|
|
269
|
+
});
|
|
270
|
+
}
|
|
242
271
|
syncWorktreeBaseline(input, signal) {
|
|
243
272
|
return project(() => {
|
|
244
273
|
if (!this.baselineSync)
|
|
@@ -286,6 +315,9 @@ let WorktreeRemoteService = (() => {
|
|
|
286
315
|
listWorktrees(input) {
|
|
287
316
|
return this.remote.listWorktrees(input);
|
|
288
317
|
}
|
|
318
|
+
readWorktreeSessionState(input) {
|
|
319
|
+
return this.remote.readWorktreeSessionState(input);
|
|
320
|
+
}
|
|
289
321
|
listWorktreeCommits(input) {
|
|
290
322
|
return this.remote.listWorktreeCommits(input);
|
|
291
323
|
}
|
|
@@ -340,12 +372,6 @@ let WorktreeRemoteService = (() => {
|
|
|
340
372
|
bindSession(input) {
|
|
341
373
|
return this.remote.bindSession(input);
|
|
342
374
|
}
|
|
343
|
-
ensureWorktreePermission(input) {
|
|
344
|
-
return this.remote.ensureWorktreePermission(input);
|
|
345
|
-
}
|
|
346
|
-
normalizeDetachedWorktreePermissions(input) {
|
|
347
|
-
return this.remote.normalizeDetachedWorktreePermissions(input);
|
|
348
|
-
}
|
|
349
375
|
};
|
|
350
376
|
})();
|
|
351
377
|
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"}
|
|
@@ -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"}
|
|
@@ -6,7 +6,7 @@ export async function listBindings(context, input) {
|
|
|
6
6
|
await requireWorkspaceForRead(context, input.workspaceId);
|
|
7
7
|
return (await context.sidecar.read(input.workspaceId)).bindings;
|
|
8
8
|
}
|
|
9
|
-
/** Bind
|
|
9
|
+
/** Bind only after DSH has published the target effective directory. */
|
|
10
10
|
export async function bindSession(context, input) {
|
|
11
11
|
const workspace = await requireWorkspace(context, input.workspaceId);
|
|
12
12
|
// Duplicate checks, DSH fact validation, and append happen in one serialized mutation.
|
|
@@ -25,11 +25,7 @@ export async function bindSession(context, input) {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
const existing = snapshot.bindings.find((binding) => binding.sessionId === input.sessionId);
|
|
28
|
-
if (existing) {
|
|
29
|
-
if (existing.worktreeId === input.worktreeId && existing.status === 'active') {
|
|
30
|
-
// Exact retries do not write; detached history is never implicitly reactivated.
|
|
31
|
-
return { result: existing, snapshot, changed: false };
|
|
32
|
-
}
|
|
28
|
+
if (existing && (existing.worktreeId !== input.worktreeId || existing.status !== 'active')) {
|
|
33
29
|
throw providerError('SESSION_ALREADY_BOUND', `Session is already bound to Worktree ${existing.worktreeId}`, {
|
|
34
30
|
sessionId: input.sessionId,
|
|
35
31
|
worktreeId: existing.worktreeId,
|
|
@@ -45,7 +41,13 @@ export async function bindSession(context, input) {
|
|
|
45
41
|
const resolvedWorktree = await resolveWorktreeWorkspaceRecord(context, workspace, worktree, {
|
|
46
42
|
sessionId: input.sessionId,
|
|
47
43
|
});
|
|
48
|
-
|
|
44
|
+
if (session.sessionId !== input.sessionId)
|
|
45
|
+
throw providerError('SESSION_CWD_MISMATCH', 'Session identity changed', { sessionId: input.sessionId });
|
|
46
|
+
await assertSessionMatchesWorkspace(session, workspace, resolvedWorktree, existing !== undefined);
|
|
47
|
+
if (existing) {
|
|
48
|
+
// Reuse validates current native facts too; an idempotent retry never redirects cwd.
|
|
49
|
+
return { result: existing, snapshot, changed: false };
|
|
50
|
+
}
|
|
49
51
|
const binding = {
|
|
50
52
|
workspaceId: input.workspaceId,
|
|
51
53
|
worktreeId: input.worktreeId,
|
|
@@ -61,7 +63,7 @@ export async function bindSession(context, input) {
|
|
|
61
63
|
}
|
|
62
64
|
/** Capture HEAD only after revalidating native Session ownership and cwd. */
|
|
63
65
|
export async function readSessionHead(context, input) {
|
|
64
|
-
|
|
66
|
+
await resolveRuntimeCwd(context, input);
|
|
65
67
|
const session = await context.dsh.getSession(input.sessionId);
|
|
66
68
|
if (!session)
|
|
67
69
|
throw providerError('SESSION_NOT_FOUND', 'Session not found', { sessionId: input.sessionId });
|
|
@@ -77,21 +79,29 @@ export async function readSessionHead(context, input) {
|
|
|
77
79
|
: undefined;
|
|
78
80
|
const cwdMatches = record
|
|
79
81
|
? await boundSessionCwdMatchesWorktree(session.cwd, await resolveWorktreeWorkspaceRecord(context, await requireWorkspace(context, input.workspaceId), record, { sessionId: input.sessionId }))
|
|
80
|
-
: await samePhysicalPath(session.cwd,
|
|
82
|
+
: await samePhysicalPath(session.cwd, (await requireWorkspace(context, input.workspaceId)).rootPath);
|
|
81
83
|
if (!cwdMatches)
|
|
82
84
|
throw providerError('SESSION_CWD_MISMATCH', 'Session ownership or cwd no longer matches', { sessionId: input.sessionId });
|
|
83
85
|
if (!context.git.resolveCommit)
|
|
84
86
|
throw providerError('GIT_OPERATION_FAILED', 'Git HEAD resolution is unavailable', {});
|
|
85
87
|
return context.git.resolveCommit(session.cwd, 'HEAD', { signal: context.signal });
|
|
86
88
|
}
|
|
87
|
-
/**
|
|
89
|
+
/** Read native execution cwd, or derive it only for legacy adapters without directory facts. */
|
|
88
90
|
export async function resolveRuntimeCwd(context, input) {
|
|
89
91
|
const workspace = await requireWorkspace(context, input.workspaceId);
|
|
90
92
|
const snapshot = await context.sidecar.read(input.workspaceId);
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
+
const bindings = snapshot.bindings.filter((candidate) => candidate.sessionId === input.sessionId);
|
|
94
|
+
const binding = bindings[0];
|
|
95
|
+
const session = await context.dsh.getSession(input.sessionId);
|
|
96
|
+
if (session?.originalCwd !== undefined &&
|
|
97
|
+
(session.sessionId !== input.sessionId || bindings.length > 1 ||
|
|
98
|
+
(session.workspaceId !== workspace.workspaceId &&
|
|
99
|
+
!(session.workspaceId === undefined && binding?.status === 'active' && binding.workspaceId === workspace.workspaceId))))
|
|
100
|
+
throw providerError('SESSION_CWD_MISMATCH', 'Session no longer belongs to this Workspace', { sessionId: input.sessionId });
|
|
101
|
+
// Native cwd is a DSH fact, including after detach; never switch running work to Main.
|
|
102
|
+
// Legacy adapters retain the older derived fallback for compatibility.
|
|
93
103
|
if (!binding || binding.status === 'detached')
|
|
94
|
-
return workspace.rootPath;
|
|
104
|
+
return session?.originalCwd === undefined ? workspace.rootPath : session.cwd;
|
|
95
105
|
const worktree = snapshot.worktrees.find((candidate) => candidate.worktreeId === binding.worktreeId);
|
|
96
106
|
if (!worktree) {
|
|
97
107
|
throw providerError('WORKTREE_NOT_FOUND', `Active binding points to a missing Worktree: ${binding.worktreeId}`, {
|
|
@@ -107,8 +117,12 @@ export async function resolveRuntimeCwd(context, input) {
|
|
|
107
117
|
sessionId: input.sessionId,
|
|
108
118
|
});
|
|
109
119
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
const projected = await resolveWorktreeWorkspaceRecord(context, workspace, worktree, { sessionId: input.sessionId });
|
|
121
|
+
if (session?.originalCwd !== undefined) {
|
|
122
|
+
if (!(await boundSessionCwdMatchesWorktree(session.cwd, projected)))
|
|
123
|
+
throw providerError('SESSION_CWD_MISMATCH', 'Native working directory no longer matches the bound Worktree', { sessionId: input.sessionId });
|
|
124
|
+
return session.cwd;
|
|
125
|
+
}
|
|
126
|
+
return projected.absolutePath;
|
|
113
127
|
}
|
|
114
128
|
//# sourceMappingURL=manager-sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-sessions.js","sourceRoot":"","sources":["../../src/manage/manager-sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElK,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA+B,EAC/B,KAA4C;IAE5C,MAAM,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"manager-sessions.js","sourceRoot":"","sources":["../../src/manage/manager-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,10 @@ export declare function requireWorkspace(context: WorktreeManagerContext, worksp
|
|
|
20
20
|
export declare function requireWorkspaceForRead(context: WorktreeManagerContext, workspaceId: string): Promise<DshWorkspaceSummary>;
|
|
21
21
|
/** Reject Git-dependent reads when the tolerated Workspace root is not an available directory. */
|
|
22
22
|
export declare function requireWorkspaceRoot(workspace: DshWorkspaceSummary): Promise<void>;
|
|
23
|
+
/** New checkouts live in one dedicated pool inside the original Workspace. */
|
|
23
24
|
export declare function validateGeneratedPath(context: WorktreeManagerContext, workspaceRoot: string, targetPath: string, worktreeId: string): void;
|
|
24
25
|
export declare function validatePhysicalGeneratedPath(context: WorktreeManagerContext, workspaceRoot: string, targetPath: string): Promise<void>;
|
|
25
|
-
export declare function assertSessionMatchesWorkspace(session: DshSessionSummary, workspace: DshWorkspaceSummary, worktree: WorktreeRecord): Promise<void>;
|
|
26
|
+
export declare function assertSessionMatchesWorkspace(session: DshSessionSummary, workspace: DshWorkspaceSummary, worktree: WorktreeRecord, existingBinding?: boolean): Promise<void>;
|
|
26
27
|
/** Resolve old Git-root records through current DSH/Git facts; new records already capture the directory. */
|
|
27
28
|
export declare function resolveWorktreeWorkspaceRecord(context: WorktreeManagerContext, workspace: DshWorkspaceSummary, record: WorktreeRecord, details?: WorktreeErrorDetails): Promise<WorktreeRecord>;
|
|
28
29
|
export type { SidecarSnapshot };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-support.d.ts","sourceRoot":"","sources":["../../src/manage/manager-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"manager-support.d.ts","sourceRoot":"","sources":["../../src/manage/manager-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,8BAA8B,CAAC;AAIjF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAI5B,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGzE;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnE;AAED,gHAAgH;AAChH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrE;AAID,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,OAAO,GACb,qBAAqB,CAOvB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAMzF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,MAAM,GAAG,MAAM,CAM3D;AAuED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACpD,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,iGAAiG;AACjG,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,kGAAkG;AAClG,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CASxF;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAC7F,IAAI,CAQN;AAED,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GACzE,OAAO,CAAC,IAAI,CAAC,CAKf;AAID,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,cAAc,EACxB,eAAe,UAAQ,GACtB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,6GAA6G;AAC7G,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
|