@cerbur/clutch-dsh-worktree 0.1.6 → 0.1.8
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 +135 -23
- package/README.zh.md +107 -13
- package/cordis.patch.yml +21 -0
- package/lib/client/WorktreeContext.d.ts.map +1 -1
- package/lib/client/WorktreeContext.js +2 -2
- package/lib/client/WorktreeContext.js.map +1 -1
- package/lib/client/WorktreeSurface.d.ts +2 -2
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +291 -70
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +84 -2
- package/lib/client/entry.js.map +1 -1
- package/lib/client/index.d.ts +3 -0
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +2 -0
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.d.ts +70 -0
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +70 -0
- package/lib/client/locales.js.map +1 -1
- package/lib/client/session-view.d.ts +34 -0
- package/lib/client/session-view.d.ts.map +1 -1
- package/lib/client/session-view.js +119 -1
- package/lib/client/session-view.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +4 -2
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +4 -0
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client/worktree-context.js +1 -1
- package/lib/client/worktree-context.js.map +1 -1
- package/lib/client/worktree-error-copy.d.ts +2 -0
- package/lib/client/worktree-error-copy.d.ts.map +1 -1
- package/lib/client/worktree-error-copy.js +24 -0
- package/lib/client/worktree-error-copy.js.map +1 -1
- package/lib/client/worktree-permission-icon.d.ts +7 -0
- package/lib/client/worktree-permission-icon.d.ts.map +1 -0
- package/lib/client/worktree-permission-icon.js +119 -0
- package/lib/client/worktree-permission-icon.js.map +1 -0
- package/lib/client/worktree-permission.d.ts +21 -0
- package/lib/client/worktree-permission.d.ts.map +1 -0
- package/lib/client/worktree-permission.js +70 -0
- package/lib/client/worktree-permission.js.map +1 -0
- package/lib/client/worktree-session-fork.d.ts +65 -0
- package/lib/client/worktree-session-fork.d.ts.map +1 -0
- package/lib/client/worktree-session-fork.js +174 -0
- package/lib/client/worktree-session-fork.js.map +1 -0
- package/lib/client/worktree-session-order.d.ts +36 -0
- package/lib/client/worktree-session-order.d.ts.map +1 -0
- package/lib/client/worktree-session-order.js +215 -0
- package/lib/client/worktree-session-order.js.map +1 -0
- package/lib/client/worktree-session.d.ts +34 -1
- package/lib/client/worktree-session.d.ts.map +1 -1
- package/lib/client/worktree-session.js +101 -3
- package/lib/client/worktree-session.js.map +1 -1
- package/lib/client/worktree-surface-rows.d.ts +4 -4
- package/lib/client/worktree-surface-rows.d.ts.map +1 -1
- package/lib/client/worktree-surface-rows.js +139 -47
- package/lib/client/worktree-surface-rows.js.map +1 -1
- package/lib/client/worktree-surface-selectors.d.ts +2 -0
- package/lib/client/worktree-surface-selectors.d.ts.map +1 -1
- package/lib/client/worktree-surface-selectors.js +8 -0
- package/lib/client/worktree-surface-selectors.js.map +1 -1
- package/lib/client/worktree-surface-types.d.ts +46 -3
- package/lib/client/worktree-surface-types.d.ts.map +1 -1
- package/lib/client/worktree-view-actions.d.ts +8 -3
- package/lib/client/worktree-view-actions.d.ts.map +1 -1
- package/lib/client/worktree-view-actions.js +28 -2
- package/lib/client/worktree-view-actions.js.map +1 -1
- package/lib/client/worktree-view-errors.d.ts +10 -0
- package/lib/client/worktree-view-errors.d.ts.map +1 -1
- package/lib/client/worktree-view-errors.js +22 -1
- package/lib/client/worktree-view-errors.js.map +1 -1
- package/lib/client.js +1515 -207
- package/lib/client.js.map +1 -1
- package/lib/contract/index.contract.js +2 -0
- package/lib/contract/index.contract.js.map +1 -1
- package/lib/contract/index.d.ts +11 -3
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +8 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/worktree-permission.d.ts +73 -0
- package/lib/contract/worktree-permission.d.ts.map +1 -0
- package/lib/contract/worktree-permission.js +32 -0
- package/lib/contract/worktree-permission.js.map +1 -0
- package/lib/host/dsh-read-adapter.d.ts +1 -0
- package/lib/host/dsh-read-adapter.d.ts.map +1 -1
- package/lib/host/dsh-read-adapter.js +6 -0
- package/lib/host/dsh-read-adapter.js.map +1 -1
- package/lib/host/index.d.ts +4 -0
- package/lib/host/index.d.ts.map +1 -1
- package/lib/host/index.js +2 -0
- 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 +7 -1
- package/lib/host/remote.js.map +1 -1
- package/lib/host/service.d.ts +5 -1
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +42 -3
- package/lib/host/service.js.map +1 -1
- package/lib/host/worktree-permission-manager.d.ts +14 -0
- package/lib/host/worktree-permission-manager.d.ts.map +1 -0
- package/lib/host/worktree-permission-manager.js +113 -0
- package/lib/host/worktree-permission-manager.js.map +1 -0
- package/lib/host/worktree-permission.d.ts +38 -0
- package/lib/host/worktree-permission.d.ts.map +1 -0
- package/lib/host/worktree-permission.js +156 -0
- package/lib/host/worktree-permission.js.map +1 -0
- package/lib/index.d.ts +6 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/manage/manager-context.d.ts +2 -0
- package/lib/manage/manager-context.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.d.ts +5 -0
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +125 -37
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +20 -0
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +91 -13
- package/lib/manage/manager.js.map +1 -1
- package/lib/manage/types.d.ts +9 -1
- package/lib/manage/types.d.ts.map +1 -1
- package/lib/manage/worktree-permission.d.ts +3 -0
- package/lib/manage/worktree-permission.d.ts.map +1 -0
- package/lib/manage/worktree-permission.js +3 -0
- package/lib/manage/worktree-permission.js.map +1 -0
- package/lib/provider/git.d.ts +37 -9
- package/lib/provider/git.d.ts.map +1 -1
- package/lib/provider/git.js +162 -61
- package/lib/provider/git.js.map +1 -1
- package/lib/provider/index.d.ts +5 -1
- package/lib/provider/index.d.ts.map +1 -1
- package/lib/provider/index.js +4 -0
- package/lib/provider/index.js.map +1 -1
- package/lib/provider/mutation-lock.d.ts +37 -0
- package/lib/provider/mutation-lock.d.ts.map +1 -0
- package/lib/provider/mutation-lock.js +270 -0
- package/lib/provider/mutation-lock.js.map +1 -0
- package/lib/provider/mutation-token.d.ts +8 -0
- package/lib/provider/mutation-token.d.ts.map +1 -0
- package/lib/provider/mutation-token.js +20 -0
- package/lib/provider/mutation-token.js.map +1 -0
- package/lib/provider/repository-fingerprint.d.ts +8 -0
- package/lib/provider/repository-fingerprint.d.ts.map +1 -0
- package/lib/provider/repository-fingerprint.js +13 -0
- package/lib/provider/repository-fingerprint.js.map +1 -0
- package/lib/provider/sidecar-persistence.d.ts +7 -3
- package/lib/provider/sidecar-persistence.d.ts.map +1 -1
- package/lib/provider/sidecar-persistence.js +118 -44
- package/lib/provider/sidecar-persistence.js.map +1 -1
- package/lib/provider/sidecar-schema.d.ts +1 -1
- package/lib/provider/sidecar-schema.d.ts.map +1 -1
- package/lib/provider/sidecar-schema.js +140 -8
- package/lib/provider/sidecar-schema.js.map +1 -1
- package/lib/provider/sidecar.d.ts +3 -1
- package/lib/provider/sidecar.d.ts.map +1 -1
- package/lib/provider/sidecar.js +6 -1
- package/lib/provider/sidecar.js.map +1 -1
- package/lib/provider/subprocess.d.ts +37 -0
- package/lib/provider/subprocess.d.ts.map +1 -0
- package/lib/provider/subprocess.js +319 -0
- package/lib/provider/subprocess.js.map +1 -0
- package/lib/provider/transaction.d.ts +65 -0
- package/lib/provider/transaction.d.ts.map +1 -0
- package/lib/provider/transaction.js +1011 -0
- package/lib/provider/transaction.js.map +1 -0
- package/lib/provider/types.d.ts +98 -7
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/typert.host.js +133 -30
- package/lib/typert.remote-client.d.ts +7 -3
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +133 -30
- package/package.json +3 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { providerError } from '../provider/types.js';
|
|
2
|
+
function unverified() {
|
|
3
|
+
return { status: 'unverified', retryable: true };
|
|
4
|
+
}
|
|
5
|
+
function aggregateNormalization(sessionIds, results) {
|
|
6
|
+
const hasUnverified = results.some((result) => result.status === 'unverified');
|
|
7
|
+
const hasNormalized = results.some((result) => result.status === 'normalized-workspace-write');
|
|
8
|
+
return {
|
|
9
|
+
status: hasUnverified
|
|
10
|
+
? 'unverified'
|
|
11
|
+
: hasNormalized
|
|
12
|
+
? 'normalized-workspace-write'
|
|
13
|
+
: 'no-op',
|
|
14
|
+
sessionIds,
|
|
15
|
+
retryable: results.some((result) => result.retryable),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compose the browser-facing permission operation with authoritative Worktree/Session
|
|
20
|
+
* facts. The caller cannot turn this into a general Session permission endpoint because
|
|
21
|
+
* the Host re-checks the active relation on every invocation.
|
|
22
|
+
*/
|
|
23
|
+
export function createWorktreePermissionManager(options) {
|
|
24
|
+
return {
|
|
25
|
+
async ensureWorktreePermission(input) {
|
|
26
|
+
const workspace = await options.dsh.getWorkspace(input.workspaceId);
|
|
27
|
+
if (workspace === undefined) {
|
|
28
|
+
throw providerError('WORKSPACE_NOT_FOUND', `Workspace "${input.workspaceId}" was not found`, { workspaceId: input.workspaceId });
|
|
29
|
+
}
|
|
30
|
+
const [worktrees, bindings] = await Promise.all([
|
|
31
|
+
options.manager.listWorktrees({ workspaceId: input.workspaceId }),
|
|
32
|
+
options.manager.listBindings({ workspaceId: input.workspaceId }),
|
|
33
|
+
]);
|
|
34
|
+
const worktree = worktrees.find((candidate) => candidate.workspaceId === input.workspaceId &&
|
|
35
|
+
candidate.worktreeId === input.worktreeId);
|
|
36
|
+
if (worktree === undefined) {
|
|
37
|
+
throw providerError('WORKTREE_NOT_FOUND', `Worktree "${input.worktreeId}" was not found`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
|
|
38
|
+
}
|
|
39
|
+
if (worktree.status !== 'active' ||
|
|
40
|
+
worktree.health === 'repair' ||
|
|
41
|
+
worktree.health === 'recovery-needed') {
|
|
42
|
+
throw providerError('WORKTREE_REMOVED', `Worktree "${input.worktreeId}" is not active`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
|
|
43
|
+
}
|
|
44
|
+
const binding = bindings.find((candidate) => candidate.workspaceId === input.workspaceId &&
|
|
45
|
+
candidate.worktreeId === input.worktreeId &&
|
|
46
|
+
candidate.sessionId === input.sessionId &&
|
|
47
|
+
candidate.status === 'active');
|
|
48
|
+
if (binding === undefined) {
|
|
49
|
+
throw providerError('WORKTREE_PERMISSION_BINDING_REQUIRED', `Session "${input.sessionId}" is not actively bound to this Worktree`, {
|
|
50
|
+
workspaceId: input.workspaceId,
|
|
51
|
+
worktreeId: input.worktreeId,
|
|
52
|
+
sessionId: input.sessionId,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const session = await options.dsh.getSession(input.sessionId);
|
|
56
|
+
if (session === undefined) {
|
|
57
|
+
throw providerError('SESSION_NOT_FOUND', `Session "${input.sessionId}" was not found`, {
|
|
58
|
+
sessionId: input.sessionId,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if ((session.workspaceId !== undefined && session.workspaceId !== workspace.workspaceId) ||
|
|
62
|
+
session.cwd !== worktree.absolutePath) {
|
|
63
|
+
throw providerError('SESSION_CWD_MISMATCH', `Session "${input.sessionId}" does not belong to this Worktree`, {
|
|
64
|
+
workspaceId: input.workspaceId,
|
|
65
|
+
worktreeId: input.worktreeId,
|
|
66
|
+
sessionId: input.sessionId,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (options.permissions === undefined)
|
|
70
|
+
return unverified();
|
|
71
|
+
return options.permissions.ensure({ ...input, binding: 'active' });
|
|
72
|
+
},
|
|
73
|
+
async normalizeDetachedWorktreePermissions(input) {
|
|
74
|
+
const workspace = await options.dsh.getWorkspace(input.workspaceId);
|
|
75
|
+
if (workspace === undefined) {
|
|
76
|
+
throw providerError('WORKSPACE_NOT_FOUND', `Workspace "${input.workspaceId}" was not found`, { workspaceId: input.workspaceId });
|
|
77
|
+
}
|
|
78
|
+
const [worktrees, bindings] = await Promise.all([
|
|
79
|
+
options.manager.listWorktrees({ workspaceId: input.workspaceId }),
|
|
80
|
+
options.manager.listBindings({ workspaceId: input.workspaceId }),
|
|
81
|
+
]);
|
|
82
|
+
const worktree = worktrees.find((candidate) => candidate.workspaceId === input.workspaceId &&
|
|
83
|
+
candidate.worktreeId === input.worktreeId);
|
|
84
|
+
if (worktree === undefined) {
|
|
85
|
+
throw providerError('WORKTREE_NOT_FOUND', `Worktree "${input.worktreeId}" was not found`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
|
|
86
|
+
}
|
|
87
|
+
if (worktree.status !== 'removed') {
|
|
88
|
+
throw providerError('WORKTREE_REMOVED', `Worktree "${input.worktreeId}" is not detached`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
|
|
89
|
+
}
|
|
90
|
+
const detachedBindings = bindings.filter((binding) => binding.workspaceId === input.workspaceId &&
|
|
91
|
+
binding.worktreeId === input.worktreeId &&
|
|
92
|
+
binding.status === 'detached');
|
|
93
|
+
const sessionIds = detachedBindings.map((binding) => binding.sessionId);
|
|
94
|
+
if (sessionIds.length === 0) {
|
|
95
|
+
return { status: 'no-op', sessionIds, retryable: false };
|
|
96
|
+
}
|
|
97
|
+
if (options.permissions === undefined) {
|
|
98
|
+
return { ...unverified(), sessionIds };
|
|
99
|
+
}
|
|
100
|
+
const results = [];
|
|
101
|
+
for (const binding of detachedBindings) {
|
|
102
|
+
results.push(await options.permissions.normalize({
|
|
103
|
+
workspaceId: input.workspaceId,
|
|
104
|
+
worktreeId: input.worktreeId,
|
|
105
|
+
sessionId: binding.sessionId,
|
|
106
|
+
binding: 'detached',
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
return aggregateNormalization(sessionIds, results);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=worktree-permission-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-permission-manager.js","sourceRoot":"","sources":["../../src/host/worktree-permission-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type WorktreePermissionApprovalPolicy, type WorktreePermissionPort, type WorktreePermissionSandboxMode } from '../manage/worktree-permission.js';
|
|
2
|
+
interface PermissionEvent {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly data?: unknown;
|
|
5
|
+
}
|
|
6
|
+
interface PermissionSession {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly events: readonly PermissionEvent[];
|
|
9
|
+
append(type: string, data: unknown): unknown;
|
|
10
|
+
}
|
|
11
|
+
interface PermissionPresetSpec {
|
|
12
|
+
readonly sandbox: WorktreePermissionSandboxMode;
|
|
13
|
+
readonly approval: WorktreePermissionApprovalPolicy;
|
|
14
|
+
}
|
|
15
|
+
interface PermissionPresetService {
|
|
16
|
+
readonly names: readonly string[];
|
|
17
|
+
current(events: readonly PermissionEvent[]): string;
|
|
18
|
+
resolve(name: string): PermissionPresetSpec;
|
|
19
|
+
set(session: PermissionSession, name: string): void;
|
|
20
|
+
}
|
|
21
|
+
interface SandboxPolicyService {
|
|
22
|
+
readonly defaultMode?: WorktreePermissionSandboxMode;
|
|
23
|
+
}
|
|
24
|
+
export interface DshWorktreePermissionAdapterOptions {
|
|
25
|
+
readonly sessions: {
|
|
26
|
+
get(sessionId: string): unknown;
|
|
27
|
+
};
|
|
28
|
+
readonly permissionPresets?: PermissionPresetService;
|
|
29
|
+
readonly sandboxPolicy?: SandboxPolicyService;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Adapt the optional public DSH permission services to the Worktree Manager
|
|
33
|
+
* port. No DSH package is imported at runtime, so an older bundle without the
|
|
34
|
+
* optional service can remain loadable and report an unverified capability.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createDshWorktreePermissionAdapter(options: DshWorktreePermissionAdapterOptions): WorktreePermissionPort;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=worktree-permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-permission.d.ts","sourceRoot":"","sources":["../../src/host/worktree-permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gCAAgC,EAErC,KAAK,sBAAsB,EAG3B,KAAK,6BAA6B,EACnC,MAAM,kCAAkC,CAAC;AAE1C,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9C;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;CACrD;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC5C,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC;CACtD;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE;QACjB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAwGD;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mCAAmC,GAC3C,sBAAsB,CA0FxB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { decideWorktreePermission, WORKTREE_FULL_ACCESS_PRESET, } from '../manage/worktree-permission.js';
|
|
2
|
+
const WORKSPACE_WRITE_PRESET = 'workspace-write';
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function stringValue(value) {
|
|
7
|
+
return typeof value === 'string' ? value : undefined;
|
|
8
|
+
}
|
|
9
|
+
function lastEventValue(events, type, key) {
|
|
10
|
+
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
11
|
+
const event = events[index];
|
|
12
|
+
if (event.type !== type || !isRecord(event.data))
|
|
13
|
+
continue;
|
|
14
|
+
const value = stringValue(event.data[key]);
|
|
15
|
+
if (value !== undefined)
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
function hasFullThenRestriction(events) {
|
|
21
|
+
let fullSeen = false;
|
|
22
|
+
for (const event of events) {
|
|
23
|
+
if (event.type !== 'permission/preset' || !isRecord(event.data))
|
|
24
|
+
continue;
|
|
25
|
+
const preset = stringValue(event.data.preset);
|
|
26
|
+
if (preset === WORKTREE_FULL_ACCESS_PRESET) {
|
|
27
|
+
fullSeen = true;
|
|
28
|
+
}
|
|
29
|
+
else if (fullSeen && preset !== undefined) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
function readCurrentState(session, permissionPresets, sandboxPolicy, pluginApplied) {
|
|
36
|
+
const preset = permissionPresets?.current(session.events);
|
|
37
|
+
let presetSpec;
|
|
38
|
+
if (preset !== undefined && preset !== 'custom') {
|
|
39
|
+
try {
|
|
40
|
+
presetSpec = permissionPresets?.resolve(preset);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
presetSpec = undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const sandboxMode = lastEventValue(session.events, 'sandbox/mode', 'mode') ??
|
|
47
|
+
presetSpec?.sandbox ??
|
|
48
|
+
sandboxPolicy?.defaultMode;
|
|
49
|
+
const approvalPolicy = lastEventValue(session.events, 'approval/policy', 'policy') ??
|
|
50
|
+
presetSpec?.approval;
|
|
51
|
+
const pluginChangedThisRuntime = pluginApplied.has(session.id);
|
|
52
|
+
const currentIsRestricted = pluginChangedThisRuntime && sandboxMode !== 'danger-full-access' ||
|
|
53
|
+
hasFullThenRestriction(session.events) ||
|
|
54
|
+
(preset !== undefined &&
|
|
55
|
+
preset !== WORKSPACE_WRITE_PRESET &&
|
|
56
|
+
preset !== WORKTREE_FULL_ACCESS_PRESET &&
|
|
57
|
+
preset !== 'danger-full-access');
|
|
58
|
+
return {
|
|
59
|
+
...(preset === undefined ? {} : { preset }),
|
|
60
|
+
...(sandboxMode === undefined ? {} : { sandboxMode }),
|
|
61
|
+
...(approvalPolicy === undefined ? {} : { approvalPolicy }),
|
|
62
|
+
explicitUserOverride: currentIsRestricted,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function resultFromCurrent(status, current, retryable) {
|
|
66
|
+
return {
|
|
67
|
+
status,
|
|
68
|
+
...(current.preset === undefined ? {} : { preset: current.preset }),
|
|
69
|
+
...(current.sandboxMode === undefined ? {} : { sandboxMode: current.sandboxMode }),
|
|
70
|
+
...(current.approvalPolicy === undefined ? {} : { approvalPolicy: current.approvalPolicy }),
|
|
71
|
+
retryable,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function serviceAvailable(permissionPresets) {
|
|
75
|
+
return (permissionPresets !== undefined &&
|
|
76
|
+
Array.isArray(permissionPresets.names) &&
|
|
77
|
+
typeof permissionPresets.current === 'function' &&
|
|
78
|
+
typeof permissionPresets.resolve === 'function' &&
|
|
79
|
+
typeof permissionPresets.set === 'function');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Adapt the optional public DSH permission services to the Worktree Manager
|
|
83
|
+
* port. No DSH package is imported at runtime, so an older bundle without the
|
|
84
|
+
* optional service can remain loadable and report an unverified capability.
|
|
85
|
+
*/
|
|
86
|
+
export function createDshWorktreePermissionAdapter(options) {
|
|
87
|
+
const pluginApplied = new Set();
|
|
88
|
+
const apply = (input, binding) => {
|
|
89
|
+
const session = options.sessions.get(input.sessionId);
|
|
90
|
+
if (!isPermissionSession(session)) {
|
|
91
|
+
return { status: 'unverified', retryable: true };
|
|
92
|
+
}
|
|
93
|
+
const permissionPresets = options.permissionPresets;
|
|
94
|
+
const current = readCurrentState(session, permissionPresets, options.sandboxPolicy, pluginApplied);
|
|
95
|
+
const hasService = serviceAvailable(permissionPresets);
|
|
96
|
+
const decision = decideWorktreePermission({
|
|
97
|
+
binding,
|
|
98
|
+
current,
|
|
99
|
+
capability: {
|
|
100
|
+
permissionService: hasService,
|
|
101
|
+
fullPreset: hasService && permissionPresets.names.includes(WORKTREE_FULL_ACCESS_PRESET),
|
|
102
|
+
workspaceWrite: hasService && permissionPresets.names.includes(WORKSPACE_WRITE_PRESET),
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
if (binding === 'active' &&
|
|
106
|
+
decision.kind === 'apply-full' &&
|
|
107
|
+
input.confirmed !== true) {
|
|
108
|
+
return { status: 'confirmation-required', retryable: false };
|
|
109
|
+
}
|
|
110
|
+
switch (decision.kind) {
|
|
111
|
+
case 'apply-full':
|
|
112
|
+
if (!hasService)
|
|
113
|
+
return resultFromCurrent('unverified', current, true);
|
|
114
|
+
permissionPresets.set(session, decision.preset);
|
|
115
|
+
pluginApplied.add(session.id);
|
|
116
|
+
return resultFromCurrent('full-applied', readCurrentState(session, permissionPresets, options.sandboxPolicy, pluginApplied), false);
|
|
117
|
+
case 'preserve-user-restriction':
|
|
118
|
+
return resultFromCurrent('user-restricted', current, false);
|
|
119
|
+
case 'unverified':
|
|
120
|
+
return resultFromCurrent('unverified', current, true);
|
|
121
|
+
case 'fallback-workspace-write':
|
|
122
|
+
if (!hasService)
|
|
123
|
+
return resultFromCurrent('unverified', current, true);
|
|
124
|
+
permissionPresets.set(session, WORKSPACE_WRITE_PRESET);
|
|
125
|
+
return resultFromCurrent('fallback-workspace-write', readCurrentState(session, permissionPresets, options.sandboxPolicy, pluginApplied), true);
|
|
126
|
+
case 'normalize-workspace-write':
|
|
127
|
+
if (!hasService || !permissionPresets.names.includes(WORKSPACE_WRITE_PRESET)) {
|
|
128
|
+
return resultFromCurrent('unverified', current, true);
|
|
129
|
+
}
|
|
130
|
+
permissionPresets.set(session, WORKSPACE_WRITE_PRESET);
|
|
131
|
+
pluginApplied.delete(session.id);
|
|
132
|
+
return resultFromCurrent('normalized-workspace-write', readCurrentState(session, permissionPresets, options.sandboxPolicy, pluginApplied), false);
|
|
133
|
+
case 'no-op':
|
|
134
|
+
return resultFromCurrent(binding === 'active' && isFullAccessState(current) ? 'already-full' : 'no-op', current, false);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
return {
|
|
138
|
+
ensure(input) {
|
|
139
|
+
return Promise.resolve(apply(input, 'active'));
|
|
140
|
+
},
|
|
141
|
+
normalize(input) {
|
|
142
|
+
return Promise.resolve(apply(input, 'detached'));
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function isPermissionSession(value) {
|
|
147
|
+
return (isRecord(value) &&
|
|
148
|
+
typeof value.id === 'string' &&
|
|
149
|
+
Array.isArray(value.events) &&
|
|
150
|
+
typeof value.append === 'function');
|
|
151
|
+
}
|
|
152
|
+
function isFullAccessState(current) {
|
|
153
|
+
return (current.preset === WORKTREE_FULL_ACCESS_PRESET ||
|
|
154
|
+
current.sandboxMode === 'danger-full-access');
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=worktree-permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-permission.js","sourceRoot":"","sources":["../../src/host/worktree-permission.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -10,14 +10,16 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
export { WORKTREE_ERROR_CODES, WORKTREE_REMOTE_METHODS, createWorktreeError, } from './contract/index.js';
|
|
13
|
-
export
|
|
13
|
+
export { WORKTREE_FULL_ACCESS_PRESET } from './contract/index.js';
|
|
14
|
+
export type { BranchRecord, BindingStatus, JsonPrimitive, JsonValue, SessionBinding, WorktreeError, WorktreeErrorCode, WorktreeErrorDetails, WorktreeManager, WorktreeImportCandidate, WorktreeRemoteManager, WorktreeRemoteMethod, WorktreeRemoteResult, WorktreeRecord, WorktreeStatus, WorktreeSource, WorktreeId, WorkspaceId, SessionId, WorktreePermissionApprovalPolicy, WorktreePermissionBinding, WorktreePermissionCapability, WorktreePermissionCurrentState, WorktreePermissionDecision, WorktreePermissionDecisionInput, WorktreePermissionManager, WorktreePermissionNormalizationRequest, WorktreePermissionPort, WorktreePermissionRequest, WorktreePermissionResult, WorktreePermissionSandboxMode, WorktreePermissionStatus, } from './contract/index.js';
|
|
14
15
|
export { LocalGitAdapter } from './provider/git.js';
|
|
16
|
+
export { CrossProcessMutationLock, WorktreeMutationTransaction, createWorktreeMutationToken, createRepositoryFingerprint, } from './provider/index.js';
|
|
15
17
|
export { WorkspaceShardedSidecarRepository, validateSidecarSnapshot, } from './provider/sidecar.js';
|
|
16
18
|
export { SIDECAR_SCHEMA_VERSION, WorktreeProviderError, isWorktreeProviderError, providerError, } from './provider/types.js';
|
|
17
|
-
export type { DshReadAdapter, DshSessionSummary, DshWorkspaceSummary, GitWorktreeAdapter, GitWorktreeInfo, SidecarMutation, SidecarSnapshot, SidecarStore, } from './provider/types.js';
|
|
19
|
+
export type { DshReadAdapter, DshSessionSummary, DshWorkspaceSummary, GitBranchWorktreeInfo, GitCommandOptions, GitRepositoryInspection, GitSubprocessRuntime, GitWorktreeAdapter, GitWorktreeInfo, LockedSidecarStore, PendingOperation, RecoveryIssue, RepositoryIdentity, SidecarMutation, SidecarSnapshot, SidecarStore, } from './provider/types.js';
|
|
18
20
|
export { WorktreeManagerImpl, createWorktreeManager } from './manage/index.js';
|
|
19
21
|
export type { RuntimeCwdInput, WorktreeManagerOptions, WorktreeManagerService, } from './manage/index.js';
|
|
20
|
-
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, } from './host/index.js';
|
|
21
|
-
export type { DshHostReadContext, WorktreeHostConfig } from './host/index.js';
|
|
22
|
+
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, createDshWorktreePermissionAdapter, createWorktreePermissionManager, } from './host/index.js';
|
|
23
|
+
export type { DshHostReadContext, DshWorktreePermissionAdapterOptions, WorktreeHostConfig, WorktreePermissionManagerOptions, } from './host/index.js';
|
|
22
24
|
export { WorktreeRemoteService as default } from './host/index.js';
|
|
23
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,YAAY,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,
|
|
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,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,sCAAsC,EACtC,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,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,EAC9B,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,mCAAmC,EACnC,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -10,11 +10,13 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
export { WORKTREE_ERROR_CODES, WORKTREE_REMOTE_METHODS, createWorktreeError, } from './contract/index.js';
|
|
13
|
+
export { WORKTREE_FULL_ACCESS_PRESET } from './contract/index.js';
|
|
13
14
|
export { LocalGitAdapter } from './provider/git.js';
|
|
15
|
+
export { CrossProcessMutationLock, WorktreeMutationTransaction, createWorktreeMutationToken, createRepositoryFingerprint, } from './provider/index.js';
|
|
14
16
|
export { WorkspaceShardedSidecarRepository, validateSidecarSnapshot, } from './provider/sidecar.js';
|
|
15
17
|
export { SIDECAR_SCHEMA_VERSION, WorktreeProviderError, isWorktreeProviderError, providerError, } from './provider/types.js';
|
|
16
18
|
export { WorktreeManagerImpl, createWorktreeManager } from './manage/index.js';
|
|
17
|
-
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, } from './host/index.js';
|
|
19
|
+
export { DshHostReadAdapter, WorktreeRemoteService, createWorktreeRemoteProjection, createDshWorktreePermissionAdapter, createWorktreePermissionManager, } from './host/index.js';
|
|
18
20
|
// bundle patch 以默认导出装载同一个 Cordis 服务;命名导出保留给显式 Host 组合。
|
|
19
21
|
// The bundle patch loads the same Cordis service through the default export; the named
|
|
20
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;
|
|
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,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAmClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,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,EAC9B,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AAQzB,uDAAuD;AACvD,uFAAuF;AACvF,0DAA0D;AAC1D,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { WorktreeManagerOptions } from './types.js';
|
|
2
2
|
import type { GitWorktreeAdapter, SidecarStore } from '../provider/types.js';
|
|
3
|
+
import type { WorktreeMutationTransaction } from '../provider/transaction.js';
|
|
3
4
|
/** Internal Manage composition context shared by the responsibility-specific use-case modules. */
|
|
4
5
|
export interface WorktreeManagerContext {
|
|
5
6
|
readonly dsh: WorktreeManagerOptions['dsh'];
|
|
6
7
|
readonly dshHome: string;
|
|
7
8
|
readonly git: GitWorktreeAdapter;
|
|
8
9
|
readonly sidecar: SidecarStore;
|
|
10
|
+
readonly transaction: WorktreeMutationTransaction;
|
|
9
11
|
readonly idFactory: () => string;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=manager-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-context.d.ts","sourceRoot":"","sources":["../../src/manage/manager-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager-context.d.ts","sourceRoot":"","sources":["../../src/manage/manager-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAE9E,kGAAkG;AAClG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC;CAClC"}
|
|
@@ -27,6 +27,11 @@ export declare function importWorktree(context: WorktreeManagerContext, input: {
|
|
|
27
27
|
export declare function removeWorktree(context: WorktreeManagerContext, input: {
|
|
28
28
|
readonly workspaceId: WorkspaceId;
|
|
29
29
|
readonly worktreeId: string;
|
|
30
|
+
readonly mutationToken: string;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
/** Reconcile one Workspace's durable Git/sidecar operation marker. */
|
|
33
|
+
export declare function recoverWorktrees(context: WorktreeManagerContext, input: {
|
|
34
|
+
readonly workspaceId: WorkspaceId;
|
|
30
35
|
}): Promise<void>;
|
|
31
36
|
export declare function insertWorktreeBefore(context: WorktreeManagerContext, input: {
|
|
32
37
|
readonly workspaceId: WorkspaceId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-worktrees.d.ts","sourceRoot":"","sources":["../../src/manage/manager-worktrees.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager-worktrees.d.ts","sourceRoot":"","sources":["../../src/manage/manager-worktrees.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AA6CnE,+EAA+E;AAC/E,wBAAsB,aAAa,CACjC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAmDpC;AAED,gGAAgG;AAChG,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CAyB7C;AAED,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAqClC;AAED,qFAAqF;AACrF,wBAAsB,cAAc,CAClC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjG,OAAO,CAAC,cAAc,CAAC,CAuJzB;AAED,8FAA8F;AAC9F,wBAAsB,cAAc,CAClC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1E,OAAO,CAAC,cAAc,CAAC,CA2EzB;AAoCD,iGAAiG;AACjG,wBAAsB,cAAc,CAClC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACxG,OAAO,CAAC,IAAI,CAAC,CAiFf;AAED,sEAAsE;AACtE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAA;CAAE,GACpH,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAWhC"}
|