@dsh-enhanced/assistant-delivery 0.1.3
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/LICENSE +21 -0
- package/README.md +225 -0
- package/cordis.patch.yml +29 -0
- package/lib/agent-runtime.d.ts +112 -0
- package/lib/agent-runtime.d.ts.map +1 -0
- package/lib/agent-runtime.js +1866 -0
- package/lib/agent-runtime.js.map +1 -0
- package/lib/canonical.d.ts +18 -0
- package/lib/canonical.d.ts.map +1 -0
- package/lib/canonical.js +83 -0
- package/lib/canonical.js.map +1 -0
- package/lib/coordinator.d.ts +124 -0
- package/lib/coordinator.d.ts.map +1 -0
- package/lib/coordinator.js +676 -0
- package/lib/coordinator.js.map +1 -0
- package/lib/inbound-images.d.ts +38 -0
- package/lib/inbound-images.d.ts.map +1 -0
- package/lib/inbound-images.js +267 -0
- package/lib/inbound-images.js.map +1 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +12 -0
- package/lib/index.js.map +1 -0
- package/lib/operator.d.ts +23 -0
- package/lib/operator.d.ts.map +1 -0
- package/lib/operator.js +38 -0
- package/lib/operator.js.map +1 -0
- package/lib/service.d.ts +269 -0
- package/lib/service.d.ts.map +1 -0
- package/lib/service.js +1698 -0
- package/lib/service.js.map +1 -0
- package/lib/session-commands.d.ts +17 -0
- package/lib/session-commands.d.ts.map +1 -0
- package/lib/session-commands.js +39 -0
- package/lib/session-commands.js.map +1 -0
- package/lib/sqlite.d.ts +8 -0
- package/lib/sqlite.d.ts.map +1 -0
- package/lib/sqlite.js +411 -0
- package/lib/sqlite.js.map +1 -0
- package/lib/store.d.ts +353 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +2614 -0
- package/lib/store.js.map +1 -0
- package/lib/tools.d.ts +4 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +54 -0
- package/lib/tools.js.map +1 -0
- package/lib/types.d.ts +329 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/version.d.ts +2 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/package.json +122 -0
package/lib/store.d.ts
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import type { ImageAttachmentRef } from '@deepseek-ai/dsh-attachment';
|
|
2
|
+
import type { ConversationBinding, ConversationModelSelection, ConversationRef, DeliveryAttachment, DeliveryPrincipal, DeliveryReceipt, ExternalPrincipalKey, InboundEnvelope, InboxRecord, OutboundIntent, ModelPickerIntent, ModelPickerState, ModelRouteRef, OutboxRecord, PairingChallenge, PermissionPickerIntent } from './types.js';
|
|
3
|
+
export type DeliveryStoreErrorCode = 'conflict' | 'idempotency-conflict' | 'invalid-binding' | 'invalid-envelope' | 'invalid-intent' | 'not-found' | 'pairing-expired' | 'pairing-invalid' | 'pairing-locked' | 'pairing-principal-mismatch' | 'pairing-replayed' | 'receipt-mismatch' | 'stale-fence' | 'unauthorized-principal' | 'version-conflict';
|
|
4
|
+
export declare class DeliveryStoreError extends Error {
|
|
5
|
+
readonly code: DeliveryStoreErrorCode;
|
|
6
|
+
constructor(code: DeliveryStoreErrorCode, message: string);
|
|
7
|
+
}
|
|
8
|
+
interface DeliveryStoreOptions {
|
|
9
|
+
path: string;
|
|
10
|
+
now?: () => number;
|
|
11
|
+
codeGenerator?: () => string;
|
|
12
|
+
maxTextBytes?: number;
|
|
13
|
+
}
|
|
14
|
+
type InboundDispatchBindingSnapshot = Pick<ConversationBinding, 'conversation' | 'generation' | 'id' | 'principal' | 'sessionId' | 'version'>;
|
|
15
|
+
export interface ApprovalDispatchCursor {
|
|
16
|
+
createdAt: number;
|
|
17
|
+
proposalId: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ApprovalDispatchCursorState {
|
|
20
|
+
version: number;
|
|
21
|
+
after?: ApprovalDispatchCursor;
|
|
22
|
+
}
|
|
23
|
+
export declare class DeliveryStore {
|
|
24
|
+
private readonly database;
|
|
25
|
+
private readonly databaseInstanceId;
|
|
26
|
+
private readonly now;
|
|
27
|
+
private readonly codeGenerator;
|
|
28
|
+
private readonly maxTextBytes;
|
|
29
|
+
private closed;
|
|
30
|
+
constructor(options: DeliveryStoreOptions);
|
|
31
|
+
instanceId(): string;
|
|
32
|
+
issuePairing(input: ExternalPrincipalKey, options: {
|
|
33
|
+
ttlMs: number;
|
|
34
|
+
maxAttempts: number;
|
|
35
|
+
}): {
|
|
36
|
+
challenge: PairingChallenge;
|
|
37
|
+
code: string;
|
|
38
|
+
};
|
|
39
|
+
confirmPairing(input: {
|
|
40
|
+
challengeId: string;
|
|
41
|
+
principal: ExternalPrincipalKey;
|
|
42
|
+
code: string;
|
|
43
|
+
}): DeliveryPrincipal;
|
|
44
|
+
/**
|
|
45
|
+
* Trusted local owner rotation. Unlike an ordinary pairing, this promotes
|
|
46
|
+
* the exact replacement principal and retires every previous active owner in
|
|
47
|
+
* one SQLite transaction, so setup can never leave two active owners or turn
|
|
48
|
+
* the newly discovered owner into a merely linked identity.
|
|
49
|
+
*/
|
|
50
|
+
handoffOwner(input: ExternalPrincipalKey): DeliveryPrincipal;
|
|
51
|
+
isAuthorizedPrincipal(input: ExternalPrincipalKey): boolean;
|
|
52
|
+
getPrincipal(input: ExternalPrincipalKey): DeliveryPrincipal | undefined;
|
|
53
|
+
createBinding(input: {
|
|
54
|
+
conversation: ConversationRef;
|
|
55
|
+
principal: ExternalPrincipalKey;
|
|
56
|
+
workspace: string;
|
|
57
|
+
agentPreset: string;
|
|
58
|
+
sessionId: string;
|
|
59
|
+
policyRef: string;
|
|
60
|
+
expectedGeneration?: number;
|
|
61
|
+
}): ConversationBinding;
|
|
62
|
+
/**
|
|
63
|
+
* Snapshot the generation a newly-created session must use. `createBinding`
|
|
64
|
+
* revalidates this value under `BEGIN IMMEDIATE` when passed as
|
|
65
|
+
* `expectedGeneration`, so a concurrent generation change fails closed.
|
|
66
|
+
*/
|
|
67
|
+
nextBindingGeneration(input: ConversationRef): number;
|
|
68
|
+
getActiveBinding(input: ConversationRef): ConversationBinding | undefined;
|
|
69
|
+
getBinding(id: string): ConversationBinding | undefined;
|
|
70
|
+
listBindings(input: ConversationRef): ConversationBinding[];
|
|
71
|
+
/** Read-only operator query. Callers must apply their own exact route checks. */
|
|
72
|
+
listActiveBindings(): ConversationBinding[];
|
|
73
|
+
getBindingBySession(sessionId: string): ConversationBinding | undefined;
|
|
74
|
+
getModelSelection(input: ConversationRef): ConversationModelSelection | undefined;
|
|
75
|
+
setModelSelection(input: ConversationRef, route: ModelRouteRef): ConversationModelSelection;
|
|
76
|
+
clearModelSelection(input: ConversationRef): boolean;
|
|
77
|
+
beginModelCommand(input: ConversationRef): number;
|
|
78
|
+
commitModelCommand(input: {
|
|
79
|
+
conversation: ConversationRef;
|
|
80
|
+
expectedEpoch: number;
|
|
81
|
+
route?: ModelRouteRef;
|
|
82
|
+
}): {
|
|
83
|
+
applied: false;
|
|
84
|
+
} | {
|
|
85
|
+
applied: true;
|
|
86
|
+
selection?: ConversationModelSelection;
|
|
87
|
+
};
|
|
88
|
+
rotateBinding(input: {
|
|
89
|
+
bindingId: string;
|
|
90
|
+
expectedVersion: number;
|
|
91
|
+
sessionId: string;
|
|
92
|
+
}): ConversationBinding;
|
|
93
|
+
/**
|
|
94
|
+
* Consume one exact `/new` Inbox while rotating its binding.
|
|
95
|
+
*
|
|
96
|
+
* The Inbox transition is part of the same SQLite commit as revoking the
|
|
97
|
+
* previous binding and inserting its successor. Consequently a provider
|
|
98
|
+
* replay can observe either the entirely old state or the entirely new
|
|
99
|
+
* state, never a rotated binding paired with an unconsumed command.
|
|
100
|
+
*/
|
|
101
|
+
rotateBindingAndQueueCommand(input: {
|
|
102
|
+
bindingId: string;
|
|
103
|
+
expectedVersion: number;
|
|
104
|
+
sessionId: string;
|
|
105
|
+
inboxId: string;
|
|
106
|
+
}): {
|
|
107
|
+
binding: ConversationBinding;
|
|
108
|
+
inbox: InboxRecord;
|
|
109
|
+
};
|
|
110
|
+
acceptInbound(input: InboundEnvelope): {
|
|
111
|
+
duplicate: boolean;
|
|
112
|
+
record: InboxRecord;
|
|
113
|
+
};
|
|
114
|
+
listAttachments(input: {
|
|
115
|
+
ownerKind: 'inbox' | 'outbox';
|
|
116
|
+
ownerId: string;
|
|
117
|
+
}): DeliveryAttachment[];
|
|
118
|
+
/**
|
|
119
|
+
* Return complete durable image references in the provider descriptor order.
|
|
120
|
+
* `undefined` means the image descriptors have not been materialized yet.
|
|
121
|
+
*/
|
|
122
|
+
listReadyInboundImageRefs(inboxId: string): readonly ImageAttachmentRef[] | undefined;
|
|
123
|
+
/** Atomically persist one ordered image batch while the caller still owns the live inbox lease. */
|
|
124
|
+
commitInboundImageRefs(input: {
|
|
125
|
+
inboxId: string;
|
|
126
|
+
ownerId: string;
|
|
127
|
+
fencingToken: number;
|
|
128
|
+
images: readonly {
|
|
129
|
+
ref: ImageAttachmentRef;
|
|
130
|
+
contentSha256: string;
|
|
131
|
+
}[];
|
|
132
|
+
}): readonly ImageAttachmentRef[];
|
|
133
|
+
queueInbox(inboxId: string, bindingId: string): InboxRecord;
|
|
134
|
+
/**
|
|
135
|
+
* Establish a durable command boundary before `/stop` or `/new` is queued.
|
|
136
|
+
*
|
|
137
|
+
* Every earlier record in the same binding that has not crossed the exact
|
|
138
|
+
* dispatch marker becomes terminal in one transaction. A normal claim
|
|
139
|
+
* carrying `dispatch-started` is deliberately left live because the external
|
|
140
|
+
* Agent may have observed it already. Exact permission commands instead get
|
|
141
|
+
* a durable cancelled-recovery marker before the runtime is asked to abort.
|
|
142
|
+
*/
|
|
143
|
+
cancelUndispatchedInboxBefore(input: {
|
|
144
|
+
bindingId: string;
|
|
145
|
+
beforeInboxId: string;
|
|
146
|
+
failureCode: string;
|
|
147
|
+
}): {
|
|
148
|
+
cancelled: number;
|
|
149
|
+
dispatching: number;
|
|
150
|
+
claimedInboxIds: string[];
|
|
151
|
+
dispatchingInboxIds: string[];
|
|
152
|
+
};
|
|
153
|
+
getInbox(id: string): InboxRecord | undefined;
|
|
154
|
+
getInboxByProviderEvent(channel: string, account: string, eventId: string): InboxRecord | undefined;
|
|
155
|
+
/** Return the oldest durable admission that did not finish before another Inbox. */
|
|
156
|
+
findPendingInboundBefore(input: {
|
|
157
|
+
conversation: ConversationRef;
|
|
158
|
+
principal: ExternalPrincipalKey;
|
|
159
|
+
beforeInboxId: string;
|
|
160
|
+
}): InboxRecord | undefined;
|
|
161
|
+
listInbox(input?: {
|
|
162
|
+
bindingId?: string;
|
|
163
|
+
limit?: number;
|
|
164
|
+
}): InboxRecord[];
|
|
165
|
+
health(): {
|
|
166
|
+
pendingInbox: number;
|
|
167
|
+
deadLetterInbox: number;
|
|
168
|
+
pendingOutbox: number;
|
|
169
|
+
deadLetterOutbox: number;
|
|
170
|
+
unknownOutbox: number;
|
|
171
|
+
};
|
|
172
|
+
getApprovalDispatchCursor(): ApprovalDispatchCursorState;
|
|
173
|
+
advanceApprovalDispatchCursor(input: {
|
|
174
|
+
expectedVersion: number;
|
|
175
|
+
after?: Readonly<ApprovalDispatchCursor>;
|
|
176
|
+
}): ApprovalDispatchCursorState;
|
|
177
|
+
deadLetterInbox(inboxId: string, failureCode: string): InboxRecord;
|
|
178
|
+
claimInbox(input: {
|
|
179
|
+
ownerId: string;
|
|
180
|
+
leaseMs: number;
|
|
181
|
+
limit: number;
|
|
182
|
+
maxAttempts: number;
|
|
183
|
+
maintenanceLimit?: number;
|
|
184
|
+
}): {
|
|
185
|
+
record: InboxRecord;
|
|
186
|
+
fencingToken: number;
|
|
187
|
+
}[];
|
|
188
|
+
finishInbox(input: {
|
|
189
|
+
inboxId: string;
|
|
190
|
+
ownerId: string;
|
|
191
|
+
fencingToken: number;
|
|
192
|
+
outcome: 'dead_letter' | 'processed' | 'retry_wait';
|
|
193
|
+
failureCode?: string;
|
|
194
|
+
retryAt?: number;
|
|
195
|
+
}): InboxRecord;
|
|
196
|
+
markInboxDispatching(input: {
|
|
197
|
+
inboxId: string;
|
|
198
|
+
ownerId: string;
|
|
199
|
+
fencingToken: number;
|
|
200
|
+
binding: Readonly<InboundDispatchBindingSnapshot>;
|
|
201
|
+
}): InboxRecord;
|
|
202
|
+
renewInboxClaim(input: {
|
|
203
|
+
inboxId: string;
|
|
204
|
+
ownerId: string;
|
|
205
|
+
fencingToken: number;
|
|
206
|
+
leaseMs: number;
|
|
207
|
+
}): boolean;
|
|
208
|
+
recoverInbox(input: {
|
|
209
|
+
maxAttempts: number;
|
|
210
|
+
limit?: number;
|
|
211
|
+
}): InboxRecord[];
|
|
212
|
+
enqueue(input: OutboundIntent): OutboxRecord;
|
|
213
|
+
getOutbox(id: string): OutboxRecord | undefined;
|
|
214
|
+
getApprovalIntent(operationId: string, bindingId: string): NonNullable<OutboundIntent['approval']> | undefined;
|
|
215
|
+
getModelPicker(operationId: string, bindingId: string): ModelPickerIntent | undefined;
|
|
216
|
+
getPermissionPicker(operationId: string, bindingId: string): PermissionPickerIntent | undefined;
|
|
217
|
+
getPermissionPickerRecord(operationId: string, bindingId: string): OutboxRecord | undefined;
|
|
218
|
+
getModelPickerState(operationId: string, bindingId: string): ModelPickerState | undefined;
|
|
219
|
+
advanceModelPicker(input: {
|
|
220
|
+
operationId: string;
|
|
221
|
+
bindingId: string;
|
|
222
|
+
expected: ModelPickerState;
|
|
223
|
+
next: ModelRouteRef;
|
|
224
|
+
}): {
|
|
225
|
+
applied: boolean;
|
|
226
|
+
state: ModelPickerState;
|
|
227
|
+
};
|
|
228
|
+
listOutbox(input?: {
|
|
229
|
+
bindingId?: string;
|
|
230
|
+
limit?: number;
|
|
231
|
+
}): OutboxRecord[];
|
|
232
|
+
claimOutbox(input: {
|
|
233
|
+
ownerId: string;
|
|
234
|
+
leaseMs: number;
|
|
235
|
+
limit: number;
|
|
236
|
+
maxAttempts: number;
|
|
237
|
+
/** Undefined preserves the legacy store-level behavior; an empty list parks every unknown lane. */
|
|
238
|
+
unknownReconcileRoutes?: readonly Readonly<{
|
|
239
|
+
channel: string;
|
|
240
|
+
account: string;
|
|
241
|
+
}>[];
|
|
242
|
+
/** Locally active work that must not be reclaimed even if its durable lease was externally lost. */
|
|
243
|
+
excludeIds?: readonly string[];
|
|
244
|
+
maintenanceLimit?: number;
|
|
245
|
+
}): {
|
|
246
|
+
record: OutboxRecord;
|
|
247
|
+
fencingToken: number;
|
|
248
|
+
mode: 'reconcile' | 'send';
|
|
249
|
+
}[];
|
|
250
|
+
renewOutboxClaim(input: {
|
|
251
|
+
outboxId: string;
|
|
252
|
+
ownerId: string;
|
|
253
|
+
fencingToken: number;
|
|
254
|
+
leaseMs: number;
|
|
255
|
+
}): boolean;
|
|
256
|
+
finishOutbox(input: {
|
|
257
|
+
outboxId: string;
|
|
258
|
+
ownerId: string;
|
|
259
|
+
fencingToken: number;
|
|
260
|
+
outcome: 'accepted' | 'dead' | 'retry_wait' | 'unknown_after_send';
|
|
261
|
+
providerMessageId?: string;
|
|
262
|
+
failureCode?: string;
|
|
263
|
+
retryAt?: number;
|
|
264
|
+
}): OutboxRecord;
|
|
265
|
+
recoverOutbox(input: {
|
|
266
|
+
maxAttempts: number;
|
|
267
|
+
limit?: number;
|
|
268
|
+
}): OutboxRecord[];
|
|
269
|
+
recordReceipt(input: DeliveryReceipt): OutboxRecord;
|
|
270
|
+
revokePrincipal(id: string, expectedVersion: number): DeliveryPrincipal;
|
|
271
|
+
linkPrincipal(input: {
|
|
272
|
+
owner: ExternalPrincipalKey;
|
|
273
|
+
linked: ExternalPrincipalKey;
|
|
274
|
+
expectedLinkedVersion: number;
|
|
275
|
+
}): DeliveryPrincipal;
|
|
276
|
+
resolveInbox(input: {
|
|
277
|
+
inboxId: string;
|
|
278
|
+
expectedAttemptCount: number;
|
|
279
|
+
resolution: 'cancel' | 'retry';
|
|
280
|
+
}): InboxRecord;
|
|
281
|
+
resolveOutbox(input: {
|
|
282
|
+
outboxId: string;
|
|
283
|
+
expectedAttemptCount: number;
|
|
284
|
+
resolution: 'cancel' | 'retry';
|
|
285
|
+
}): OutboxRecord;
|
|
286
|
+
beginApprovalSettlement(input: {
|
|
287
|
+
operationId: string;
|
|
288
|
+
payload: unknown;
|
|
289
|
+
createIfMissing?: boolean;
|
|
290
|
+
}): {
|
|
291
|
+
payloadHash: string;
|
|
292
|
+
replayed: boolean;
|
|
293
|
+
result?: unknown;
|
|
294
|
+
};
|
|
295
|
+
completeApprovalSettlement(input: {
|
|
296
|
+
operationId: string;
|
|
297
|
+
payloadHash: string;
|
|
298
|
+
result: unknown;
|
|
299
|
+
}): unknown;
|
|
300
|
+
beginModelSelectionSettlement(input: {
|
|
301
|
+
operationId: string;
|
|
302
|
+
bindingId: string;
|
|
303
|
+
expected: ModelPickerState;
|
|
304
|
+
payload: unknown;
|
|
305
|
+
createIfMissing?: boolean;
|
|
306
|
+
}): {
|
|
307
|
+
payloadHash: string;
|
|
308
|
+
replayed: boolean;
|
|
309
|
+
status: 'completed' | 'pending';
|
|
310
|
+
result?: unknown;
|
|
311
|
+
};
|
|
312
|
+
claimModelSelectionSettlements(input: {
|
|
313
|
+
ownerId: string;
|
|
314
|
+
leaseMs: number;
|
|
315
|
+
limit?: number;
|
|
316
|
+
}): Array<{
|
|
317
|
+
operationId: string;
|
|
318
|
+
bindingId: string;
|
|
319
|
+
payloadHash: string;
|
|
320
|
+
payload: unknown;
|
|
321
|
+
fencingToken: number;
|
|
322
|
+
}>;
|
|
323
|
+
nextModelSelectionClaimAt(): number | undefined;
|
|
324
|
+
renewModelSelectionSettlement(input: {
|
|
325
|
+
operationId: string;
|
|
326
|
+
ownerId: string;
|
|
327
|
+
fencingToken: number;
|
|
328
|
+
leaseMs: number;
|
|
329
|
+
}): boolean;
|
|
330
|
+
completeModelSelectionSettlement(input: {
|
|
331
|
+
operationId: string;
|
|
332
|
+
payloadHash: string;
|
|
333
|
+
result: unknown;
|
|
334
|
+
selection?: {
|
|
335
|
+
conversation: ConversationRef;
|
|
336
|
+
route: ModelRouteRef;
|
|
337
|
+
};
|
|
338
|
+
reply?: OutboundIntent;
|
|
339
|
+
superseded?: {
|
|
340
|
+
result: unknown;
|
|
341
|
+
reply?: OutboundIntent;
|
|
342
|
+
};
|
|
343
|
+
ownerId?: string;
|
|
344
|
+
fencingToken?: number;
|
|
345
|
+
}): unknown;
|
|
346
|
+
close(): void;
|
|
347
|
+
private transaction;
|
|
348
|
+
private advanceModelCommandEpoch;
|
|
349
|
+
private nextBindingGenerationByHash;
|
|
350
|
+
private assertOpen;
|
|
351
|
+
}
|
|
352
|
+
export {};
|
|
353
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|