@takboo/dsh-session-bin 0.0.0-stage → 0.1.1

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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +122 -2
  3. package/cordis.patch.yml +4 -0
  4. package/dist/client-model.js +1673 -0
  5. package/dist/client.js +17043 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/host/archive.d.ts +766 -0
  8. package/dist/host/lease.d.ts +4 -0
  9. package/dist/host/module.d.ts +705 -0
  10. package/dist/host/native-jsonl-files.d.ts +198 -0
  11. package/dist/host/native-retirement-admission.d.ts +33 -0
  12. package/dist/host/native-retirement-metadata.d.ts +116 -0
  13. package/dist/host/native-retirement-owner.d.ts +305 -0
  14. package/dist/host/native-retirement-persistence.d.ts +24 -0
  15. package/dist/host/native-retirement-sdk.d.ts +80 -0
  16. package/dist/host/native.d.ts +12 -0
  17. package/dist/host/platform-files.d.ts +19 -0
  18. package/dist/host/remote.d.ts +32 -0
  19. package/dist/host/retirement-owner-store.d.ts +124 -0
  20. package/dist/host/retirement-owner.d.ts +124 -0
  21. package/dist/host/retirement-store.d.ts +311 -0
  22. package/dist/host/retirement.d.ts +76 -0
  23. package/dist/host/store.d.ts +215 -0
  24. package/dist/index.d.ts +912 -0
  25. package/dist/index.js +5008 -0
  26. package/dist/index.js.map +7 -0
  27. package/dist/operations/archive.d.ts +82 -0
  28. package/dist/operations/index.d.ts +2 -0
  29. package/dist/operations/retirement-owner.d.ts +129 -0
  30. package/dist/operations/retirement.d.ts +821 -0
  31. package/dist/operations/schema.d.ts +115 -0
  32. package/dist/operations.js +130 -0
  33. package/dist/operations.js.map +7 -0
  34. package/dist/remote/contracts.d.ts +891 -0
  35. package/dist/remote.js +442 -0
  36. package/dist/remote.js.map +7 -0
  37. package/dist/types/client/components.d.ts +17 -0
  38. package/dist/types/client/index.d.ts +10 -0
  39. package/dist/types/client/locales.d.ts +116 -0
  40. package/dist/types/client/model.d.ts +137 -0
  41. package/dist/types/client/purge-batch.d.ts +45 -0
  42. package/dist/types/client/retirement-digest.d.ts +3 -0
  43. package/dist/types/operations/archive.d.ts +82 -0
  44. package/dist/types/operations/retirement.d.ts +821 -0
  45. package/dist/types/operations/schema.d.ts +115 -0
  46. package/dist/types/remote/contracts.d.ts +891 -0
  47. package/docs/client-interface.md +79 -0
  48. package/docs/host-lifecycle.md +160 -0
  49. package/locale/en.json +6 -0
  50. package/locale/zh.json +6 -0
  51. package/package.json +163 -4
@@ -0,0 +1,311 @@
1
+ import type { Domain } from '@deepseek-ai/dsh-storage-domain';
2
+ import type { PurgeOperation, RetirementBinding } from '../operations/retirement.js';
3
+ /** Separate sidecar accepts unchanged legacy v1 records and explicitly tagged native v2 records.
4
+ * Its storage domain version stays 1; no automatic data migration or native mutation. */
5
+ export declare const retirementDomainSpec: {
6
+ readonly name: "session_bin_purge";
7
+ readonly version: 1;
8
+ readonly layout: "single";
9
+ readonly tables: {
10
+ readonly bindings: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
11
+ schemaVersion: 1;
12
+ entryId: string;
13
+ entryVersion: 1;
14
+ lifecycle: {
15
+ storeId: string;
16
+ sessionId: string;
17
+ lifecycleId: string;
18
+ };
19
+ capabilities: {
20
+ protocolVersion: 1;
21
+ ownerId: string;
22
+ hostVersion: string;
23
+ providerId: string;
24
+ storeId: string;
25
+ participants: {
26
+ id: string;
27
+ version: string;
28
+ }[];
29
+ };
30
+ } | {
31
+ schemaVersion: 2;
32
+ target: "native-archive";
33
+ entryId: string;
34
+ entryVersion: 2;
35
+ lifecycle: {
36
+ storeId: string;
37
+ sessionId: string;
38
+ lifecycleId: string;
39
+ };
40
+ capabilities: {
41
+ protocolVersion: 1;
42
+ ownerId: string;
43
+ hostVersion: string;
44
+ providerId: string;
45
+ storeId: string;
46
+ participants: {
47
+ id: string;
48
+ version: string;
49
+ }[];
50
+ };
51
+ }>;
52
+ readonly operations: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
53
+ schemaVersion: 1 | 2;
54
+ plan: {
55
+ schemaVersion: 1 | 2;
56
+ action: "purge";
57
+ operationId: string;
58
+ sessionId: string;
59
+ expectedEntryId: string | null;
60
+ binding: {
61
+ schemaVersion: 1;
62
+ entryId: string;
63
+ entryVersion: 1;
64
+ lifecycle: {
65
+ storeId: string;
66
+ sessionId: string;
67
+ lifecycleId: string;
68
+ };
69
+ capabilities: {
70
+ protocolVersion: 1;
71
+ ownerId: string;
72
+ hostVersion: string;
73
+ providerId: string;
74
+ storeId: string;
75
+ participants: {
76
+ id: string;
77
+ version: string;
78
+ }[];
79
+ };
80
+ } | {
81
+ schemaVersion: 2;
82
+ target: "native-archive";
83
+ entryId: string;
84
+ entryVersion: 2;
85
+ lifecycle: {
86
+ storeId: string;
87
+ sessionId: string;
88
+ lifecycleId: string;
89
+ };
90
+ capabilities: {
91
+ protocolVersion: 1;
92
+ ownerId: string;
93
+ hostVersion: string;
94
+ providerId: string;
95
+ storeId: string;
96
+ participants: {
97
+ id: string;
98
+ version: string;
99
+ }[];
100
+ };
101
+ } | null;
102
+ manifest: {
103
+ schemaVersion: 1;
104
+ lifecycle: {
105
+ storeId: string;
106
+ sessionId: string;
107
+ lifecycleId: string;
108
+ };
109
+ capabilities: {
110
+ protocolVersion: 1;
111
+ ownerId: string;
112
+ hostVersion: string;
113
+ providerId: string;
114
+ storeId: string;
115
+ participants: {
116
+ id: string;
117
+ version: string;
118
+ }[];
119
+ };
120
+ resources: {
121
+ ownerId: string;
122
+ resourceId: string;
123
+ revision: string;
124
+ kind: "transcript" | "workspace" | "index" | "cache" | "attachment" | "spill" | "coordination";
125
+ disposition: "erase" | "release-reference" | "retain-shared" | "retain-coordination";
126
+ retention: {
127
+ reason: "shared-reference" | "coordination-identity";
128
+ retainedBy: {
129
+ storeId: string;
130
+ sessionId: string;
131
+ lifecycleId: string;
132
+ }[];
133
+ } | null;
134
+ }[];
135
+ } | null;
136
+ blockers: {
137
+ code: string;
138
+ activity?: string[] | undefined;
139
+ }[];
140
+ };
141
+ createdAt: string;
142
+ phase: "intent" | "done" | "authorizing" | "owner-pending";
143
+ entry: {
144
+ schemaVersion: 1;
145
+ sessionId: string;
146
+ entryId: string;
147
+ operationId: string;
148
+ binnedAt: string;
149
+ workspaceIdAtBin: string | null;
150
+ wasArchived: boolean;
151
+ } | {
152
+ schemaVersion: 2;
153
+ sessionId: string;
154
+ entryId: string;
155
+ } | null;
156
+ authorizationId: string | null;
157
+ ownerState: {
158
+ schemaVersion: 1;
159
+ request: {
160
+ operationId: string;
161
+ expected: {
162
+ storeId: string;
163
+ sessionId: string;
164
+ lifecycleId: string;
165
+ };
166
+ bin: {
167
+ entryId: string;
168
+ entryVersion: 1;
169
+ } | {
170
+ kind: "native-archive";
171
+ entryId: string;
172
+ entryVersion: 2;
173
+ };
174
+ manifestDigest: string;
175
+ };
176
+ manifest: {
177
+ schemaVersion: 1;
178
+ lifecycle: {
179
+ storeId: string;
180
+ sessionId: string;
181
+ lifecycleId: string;
182
+ };
183
+ capabilities: {
184
+ protocolVersion: 1;
185
+ ownerId: string;
186
+ hostVersion: string;
187
+ providerId: string;
188
+ storeId: string;
189
+ participants: {
190
+ id: string;
191
+ version: string;
192
+ }[];
193
+ };
194
+ resources: {
195
+ ownerId: string;
196
+ resourceId: string;
197
+ revision: string;
198
+ kind: "transcript" | "workspace" | "index" | "cache" | "attachment" | "spill" | "coordination";
199
+ disposition: "erase" | "release-reference" | "retain-shared" | "retain-coordination";
200
+ retention: {
201
+ reason: "shared-reference" | "coordination-identity";
202
+ retainedBy: {
203
+ storeId: string;
204
+ sessionId: string;
205
+ lifecycleId: string;
206
+ }[];
207
+ } | null;
208
+ }[];
209
+ };
210
+ authorizationId: string | null;
211
+ phase: "rejected" | "conflict" | "done" | "fenced" | "quiesced" | "erasing" | "converging";
212
+ reason: string | null;
213
+ resources: {
214
+ ownerId: string;
215
+ resourceId: string;
216
+ status: "erased" | "reference-released" | "retained" | "failed";
217
+ reason: string | null;
218
+ }[];
219
+ } | null;
220
+ result: {
221
+ action: "purge";
222
+ operationId: string;
223
+ sessionId: string;
224
+ entryId: string | null;
225
+ status: "success" | "rejected" | "conflict" | "pending-recovery" | "partial-failure";
226
+ reason: string | null;
227
+ ownerState: {
228
+ schemaVersion: 1;
229
+ request: {
230
+ operationId: string;
231
+ expected: {
232
+ storeId: string;
233
+ sessionId: string;
234
+ lifecycleId: string;
235
+ };
236
+ bin: {
237
+ entryId: string;
238
+ entryVersion: 1;
239
+ } | {
240
+ kind: "native-archive";
241
+ entryId: string;
242
+ entryVersion: 2;
243
+ };
244
+ manifestDigest: string;
245
+ };
246
+ manifest: {
247
+ schemaVersion: 1;
248
+ lifecycle: {
249
+ storeId: string;
250
+ sessionId: string;
251
+ lifecycleId: string;
252
+ };
253
+ capabilities: {
254
+ protocolVersion: 1;
255
+ ownerId: string;
256
+ hostVersion: string;
257
+ providerId: string;
258
+ storeId: string;
259
+ participants: {
260
+ id: string;
261
+ version: string;
262
+ }[];
263
+ };
264
+ resources: {
265
+ ownerId: string;
266
+ resourceId: string;
267
+ revision: string;
268
+ kind: "transcript" | "workspace" | "index" | "cache" | "attachment" | "spill" | "coordination";
269
+ disposition: "erase" | "release-reference" | "retain-shared" | "retain-coordination";
270
+ retention: {
271
+ reason: "shared-reference" | "coordination-identity";
272
+ retainedBy: {
273
+ storeId: string;
274
+ sessionId: string;
275
+ lifecycleId: string;
276
+ }[];
277
+ } | null;
278
+ }[];
279
+ };
280
+ authorizationId: string | null;
281
+ phase: "rejected" | "conflict" | "done" | "fenced" | "quiesced" | "erasing" | "converging";
282
+ reason: string | null;
283
+ resources: {
284
+ ownerId: string;
285
+ resourceId: string;
286
+ status: "erased" | "reference-released" | "retained" | "failed";
287
+ reason: string | null;
288
+ }[];
289
+ } | null;
290
+ } | null;
291
+ }>;
292
+ };
293
+ };
294
+ export interface RetirementStore {
295
+ binding(entryId: string): RetirementBinding | undefined;
296
+ putBinding(binding: RetirementBinding): Promise<void>;
297
+ operation(operationId: string): PurgeOperation | undefined;
298
+ operations(): PurgeOperation[];
299
+ putOperation(operation: PurgeOperation): Promise<void>;
300
+ close(): Promise<void>;
301
+ }
302
+ export declare class DomainRetirementStore implements RetirementStore {
303
+ private readonly domain;
304
+ constructor(domain: Domain<typeof retirementDomainSpec>);
305
+ binding(entryId: string): RetirementBinding | undefined;
306
+ putBinding(value: RetirementBinding): Promise<void>;
307
+ operation(operationId: string): PurgeOperation | undefined;
308
+ operations(): PurgeOperation[];
309
+ putOperation(value: PurgeOperation): Promise<void>;
310
+ close(): Promise<void>;
311
+ }
@@ -0,0 +1,76 @@
1
+ import type { BinEntry } from '../operations/schema.js';
2
+ import type { ArchiveEntry } from '../operations/archive.js';
3
+ import type { LifecycleKey, PreparePurgeRequest, PurgeOperation, PurgePlan, PurgeResult, RetirementCapabilities, RetirementManifest, RetirementRequest, RetirementState, RetirementAuthorization } from '../operations/retirement.js';
4
+ import type { RetirementStore } from './retirement-store.js';
5
+ export declare function isRetirementOwnerRefusal(error: unknown): boolean;
6
+ export declare function retirementOwnerRefusal(reason: string): Error;
7
+ /** The resource owner implements its own durable admission fence and recovery.
8
+ * This interface is a plugin seam, not a native DSH SDK service. */
9
+ export interface SessionRetirementOwnerV1 {
10
+ capabilities(): Promise<RetirementCapabilities>;
11
+ eligibility?(sessionId: string): Promise<string | null>;
12
+ inspect(sessionId: string): Promise<LifecycleKey | null>;
13
+ prepare(expected: LifecycleKey): Promise<RetirementManifest>;
14
+ retire(request: RetirementRequest, authorize: () => Promise<RetirementAuthorization>, frozenManifest?: RetirementManifest): Promise<RetirementState>;
15
+ getOperation(operationId: string): Promise<RetirementState | null>;
16
+ recover(operationId: string): Promise<RetirementState>;
17
+ }
18
+ export interface RetirementOptions {
19
+ store: RetirementStore;
20
+ /** False when the composition closes a journal shared by multiple consumers after draining both. */
21
+ closeStore?: boolean;
22
+ owner?: SessionRetirementOwnerV1;
23
+ resolveOwner?: () => Promise<SessionRetirementOwnerV1 | undefined>;
24
+ /** Admission is supplied by the Host composition, never by owner self-report or Client Config. */
25
+ verified?: (capabilities: RetirementCapabilities) => boolean;
26
+ /** Separate qualification for native archive admission and visibility coordination. */
27
+ verifiedNativeArchive?: (capabilities: RetirementCapabilities) => boolean;
28
+ }
29
+ export interface PurgeHooks {
30
+ newRequestsDisabled?: boolean;
31
+ target?: 'native-archive';
32
+ entry(sessionId: string): BinEntry | ArchiveEntry | undefined;
33
+ invalidated(entryId: string): boolean;
34
+ archived(sessionId: string): Promise<boolean>;
35
+ activity(sessionId: string): Promise<string[]>;
36
+ deleteEntry(sessionId: string): Promise<void>;
37
+ hasArchiveOperation(operationId: string): boolean;
38
+ hasPendingArchiveOperation(sessionId: string): boolean;
39
+ }
40
+ export interface PurgeReconcileReport {
41
+ completed: PurgeResult[];
42
+ pending: string[];
43
+ }
44
+ export declare function retirementManifestDigest(input: RetirementManifest): string;
45
+ /** Inner operations only: the owning archive/legacy Module supplies the queue, failure fence and lifetime lease. */
46
+ export declare class SessionBinPurgeModule {
47
+ private readonly options;
48
+ private readonly hooks;
49
+ private readonly store;
50
+ constructor(options: RetirementOptions, hooks: PurgeHooks);
51
+ operation(operationId: string): PurgeOperation | undefined;
52
+ operations(): PurgeOperation[];
53
+ blocks(sessionId: string): boolean;
54
+ blocksTarget(sessionId: string): boolean;
55
+ ownsPendingEntry(entryId: string): boolean;
56
+ close(): Promise<void>;
57
+ capture(entry: BinEntry): Promise<void>;
58
+ bindingMatches(entry: BinEntry): Promise<boolean>;
59
+ prepare(input: PreparePurgeRequest): Promise<PurgePlan>;
60
+ execute(input: PurgePlan): Promise<PurgeResult>;
61
+ reconcile(resume?: boolean): Promise<PurgeReconcileReport>;
62
+ private ownerCall;
63
+ private refusalReason;
64
+ private eligibility;
65
+ private admittedCapabilities;
66
+ private check;
67
+ private checkInner;
68
+ private validateManifest;
69
+ private validateOwnerState;
70
+ private recover;
71
+ private assertProgress;
72
+ private acceptState;
73
+ private pendingResult;
74
+ private finalize;
75
+ private finish;
76
+ }
@@ -0,0 +1,215 @@
1
+ import type { Domain } from '@deepseek-ai/dsh-storage-domain';
2
+ import type { ArchiveEntry, ArchiveOperation } from '../operations/archive.js';
3
+ import type { BinEntry, BinOperation } from '../operations/schema.js';
4
+ export declare const binDomainSpec: {
5
+ readonly name: "session_bin";
6
+ readonly version: 1;
7
+ readonly layout: "single";
8
+ readonly tables: {
9
+ readonly entries: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
10
+ schemaVersion: 1;
11
+ sessionId: string;
12
+ entryId: string;
13
+ operationId: string;
14
+ binnedAt: string;
15
+ workspaceIdAtBin: string | null;
16
+ wasArchived: boolean;
17
+ }>;
18
+ readonly operations: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
19
+ schemaVersion: 1;
20
+ plan: {
21
+ schemaVersion: 1;
22
+ operationId: string;
23
+ action: "bin" | "restore";
24
+ sessionId: string;
25
+ expected: {
26
+ archived: boolean;
27
+ entryId: string | null;
28
+ };
29
+ blockers: {
30
+ code: string;
31
+ activity?: string[] | undefined;
32
+ }[];
33
+ };
34
+ createdAt: string;
35
+ phase: "intent" | "applied" | "done";
36
+ ownershipInvalidated: boolean;
37
+ entry: {
38
+ schemaVersion: 1;
39
+ sessionId: string;
40
+ entryId: string;
41
+ operationId: string;
42
+ binnedAt: string;
43
+ workspaceIdAtBin: string | null;
44
+ wasArchived: boolean;
45
+ } | null;
46
+ result: {
47
+ operationId: string;
48
+ action: "bin" | "restore";
49
+ sessionId: string;
50
+ status: "success" | "rejected" | "conflict";
51
+ reason: string | null;
52
+ entryId: string | null;
53
+ } | null;
54
+ }>;
55
+ };
56
+ };
57
+ export interface BinStore {
58
+ entries(): BinEntry[];
59
+ operations(): BinOperation[];
60
+ entry(sessionId: string): BinEntry | undefined;
61
+ operation(operationId: string): BinOperation | undefined;
62
+ putEntry(entry: BinEntry): Promise<void>;
63
+ deleteEntry(sessionId: string): Promise<void>;
64
+ putOperation(operation: BinOperation): Promise<void>;
65
+ close(): Promise<void>;
66
+ }
67
+ export declare class DomainBinStore implements BinStore {
68
+ private readonly domain;
69
+ constructor(domain: Domain<typeof binDomainSpec>);
70
+ entries(): BinEntry[];
71
+ operations(): BinOperation[];
72
+ entry(sessionId: string): BinEntry | undefined;
73
+ operation(operationId: string): BinOperation | undefined;
74
+ putEntry(value: BinEntry): Promise<void>;
75
+ deleteEntry(sessionId: string): Promise<void>;
76
+ putOperation(value: BinOperation): Promise<void>;
77
+ close(): Promise<void>;
78
+ }
79
+ /** Observation identities live apart from the immutable v1 ownership journal. */
80
+ export declare const archiveDomainSpec: {
81
+ readonly name: "session_archive";
82
+ readonly version: 1;
83
+ readonly layout: "single";
84
+ readonly tables: {
85
+ readonly entries: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
86
+ schemaVersion: 2;
87
+ sessionId: string;
88
+ entryId: string;
89
+ }>;
90
+ readonly operations: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
91
+ schemaVersion: 2;
92
+ plan: {
93
+ schemaVersion: 2;
94
+ operationId: string;
95
+ action: "unarchive";
96
+ sessionId: string;
97
+ expected: {
98
+ archived: boolean;
99
+ entryId: string | null;
100
+ };
101
+ blockers: {
102
+ code: string;
103
+ activity?: string[] | undefined;
104
+ }[];
105
+ };
106
+ createdAt: string;
107
+ phase: "intent" | "applied" | "done";
108
+ entry: {
109
+ schemaVersion: 2;
110
+ sessionId: string;
111
+ entryId: string;
112
+ } | null;
113
+ result: {
114
+ operationId: string;
115
+ action: "unarchive";
116
+ sessionId: string;
117
+ status: "success" | "rejected" | "conflict";
118
+ reason: string | null;
119
+ entryId: string | null;
120
+ } | null;
121
+ }>;
122
+ };
123
+ };
124
+ export interface ArchiveStore {
125
+ entries(): ArchiveEntry[];
126
+ entry(sessionId: string): ArchiveEntry | undefined;
127
+ operations(): ArchiveOperation[];
128
+ operation(operationId: string): ArchiveOperation | undefined;
129
+ putEntry(entry: ArchiveEntry): Promise<void>;
130
+ deleteEntry(sessionId: string): Promise<void>;
131
+ putOperation(operation: ArchiveOperation): Promise<void>;
132
+ close(): Promise<void>;
133
+ }
134
+ export declare class DomainArchiveStore implements ArchiveStore {
135
+ private readonly domain;
136
+ constructor(domain: Domain<typeof archiveDomainSpec>);
137
+ entries(): {
138
+ schemaVersion: 2;
139
+ sessionId: string;
140
+ entryId: string;
141
+ }[];
142
+ entry(sessionId: string): {
143
+ schemaVersion: 2;
144
+ sessionId: string;
145
+ entryId: string;
146
+ } | undefined;
147
+ operations(): {
148
+ schemaVersion: 2;
149
+ plan: {
150
+ schemaVersion: 2;
151
+ operationId: string;
152
+ action: "unarchive";
153
+ sessionId: string;
154
+ expected: {
155
+ archived: boolean;
156
+ entryId: string | null;
157
+ };
158
+ blockers: {
159
+ code: string;
160
+ activity?: string[] | undefined;
161
+ }[];
162
+ };
163
+ createdAt: string;
164
+ phase: "intent" | "applied" | "done";
165
+ entry: {
166
+ schemaVersion: 2;
167
+ sessionId: string;
168
+ entryId: string;
169
+ } | null;
170
+ result: {
171
+ operationId: string;
172
+ action: "unarchive";
173
+ sessionId: string;
174
+ status: "success" | "rejected" | "conflict";
175
+ reason: string | null;
176
+ entryId: string | null;
177
+ } | null;
178
+ }[];
179
+ operation(operationId: string): {
180
+ schemaVersion: 2;
181
+ plan: {
182
+ schemaVersion: 2;
183
+ operationId: string;
184
+ action: "unarchive";
185
+ sessionId: string;
186
+ expected: {
187
+ archived: boolean;
188
+ entryId: string | null;
189
+ };
190
+ blockers: {
191
+ code: string;
192
+ activity?: string[] | undefined;
193
+ }[];
194
+ };
195
+ createdAt: string;
196
+ phase: "intent" | "applied" | "done";
197
+ entry: {
198
+ schemaVersion: 2;
199
+ sessionId: string;
200
+ entryId: string;
201
+ } | null;
202
+ result: {
203
+ operationId: string;
204
+ action: "unarchive";
205
+ sessionId: string;
206
+ status: "success" | "rejected" | "conflict";
207
+ reason: string | null;
208
+ entryId: string | null;
209
+ } | null;
210
+ } | undefined;
211
+ putEntry(value: ArchiveEntry): Promise<void>;
212
+ deleteEntry(sessionId: string): Promise<void>;
213
+ putOperation(value: ArchiveOperation): Promise<void>;
214
+ close(): Promise<void>;
215
+ }