agentdb 1.5.9 → 1.6.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.
- package/README.md +11 -11
- package/dist/agentdb.min.js +4 -4
- package/dist/cli/agentdb-cli.d.ts +29 -0
- package/dist/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/cli/agentdb-cli.js +1009 -34
- package/dist/cli/agentdb-cli.js.map +1 -1
- package/dist/controllers/ContextSynthesizer.d.ts +65 -0
- package/dist/controllers/ContextSynthesizer.d.ts.map +1 -0
- package/dist/controllers/ContextSynthesizer.js +208 -0
- package/dist/controllers/ContextSynthesizer.js.map +1 -0
- package/dist/controllers/HNSWIndex.d.ts +128 -0
- package/dist/controllers/HNSWIndex.d.ts.map +1 -0
- package/dist/controllers/HNSWIndex.js +361 -0
- package/dist/controllers/HNSWIndex.js.map +1 -0
- package/dist/controllers/MMRDiversityRanker.d.ts +50 -0
- package/dist/controllers/MMRDiversityRanker.d.ts.map +1 -0
- package/dist/controllers/MMRDiversityRanker.js +130 -0
- package/dist/controllers/MMRDiversityRanker.js.map +1 -0
- package/dist/controllers/MetadataFilter.d.ts +70 -0
- package/dist/controllers/MetadataFilter.d.ts.map +1 -0
- package/dist/controllers/MetadataFilter.js +243 -0
- package/dist/controllers/MetadataFilter.js.map +1 -0
- package/dist/controllers/QUICClient.d.ts +109 -0
- package/dist/controllers/QUICClient.d.ts.map +1 -0
- package/dist/controllers/QUICClient.js +299 -0
- package/dist/controllers/QUICClient.js.map +1 -0
- package/dist/controllers/QUICServer.d.ts +121 -0
- package/dist/controllers/QUICServer.d.ts.map +1 -0
- package/dist/controllers/QUICServer.js +383 -0
- package/dist/controllers/QUICServer.js.map +1 -0
- package/dist/controllers/SyncCoordinator.d.ts +120 -0
- package/dist/controllers/SyncCoordinator.d.ts.map +1 -0
- package/dist/controllers/SyncCoordinator.js +441 -0
- package/dist/controllers/SyncCoordinator.js.map +1 -0
- package/dist/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/controllers/WASMVectorSearch.js +10 -2
- package/dist/controllers/WASMVectorSearch.js.map +1 -1
- package/dist/controllers/index.d.ts +14 -0
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +7 -0
- package/dist/controllers/index.js.map +1 -1
- package/dist/examples/quic-sync-example.d.ts +9 -0
- package/dist/examples/quic-sync-example.d.ts.map +1 -0
- package/dist/examples/quic-sync-example.js +169 -0
- package/dist/examples/quic-sync-example.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/types/quic.d.ts +518 -0
- package/dist/types/quic.d.ts.map +1 -0
- package/dist/types/quic.js +272 -0
- package/dist/types/quic.js.map +1 -0
- package/package.json +11 -3
- package/src/browser-entry.js +41 -6
- package/src/cli/agentdb-cli.ts +1114 -33
- package/src/controllers/ContextSynthesizer.ts +285 -0
- package/src/controllers/HNSWIndex.ts +495 -0
- package/src/controllers/MMRDiversityRanker.ts +187 -0
- package/src/controllers/MetadataFilter.ts +280 -0
- package/src/controllers/QUICClient.ts +413 -0
- package/src/controllers/QUICServer.ts +498 -0
- package/src/controllers/SyncCoordinator.ts +597 -0
- package/src/controllers/WASMVectorSearch.ts +11 -2
- package/src/controllers/index.ts +14 -0
- package/src/examples/quic-sync-example.ts +198 -0
- package/src/index.ts +2 -1
- package/src/types/quic.ts +772 -0
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QUIC Synchronization Types for AgentDB
|
|
3
|
+
*
|
|
4
|
+
* This file contains TypeScript interfaces and types for the QUIC-based
|
|
5
|
+
* multi-node synchronization system. These types mirror the Protocol Buffer
|
|
6
|
+
* definitions and provide type safety for the sync implementation.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Vector clock for causal ordering of events across distributed nodes.
|
|
10
|
+
* Maps node IDs to their logical clock values.
|
|
11
|
+
*/
|
|
12
|
+
export interface VectorClock {
|
|
13
|
+
clocks: Map<string, number>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compares two vector clocks to determine causal relationship
|
|
17
|
+
*/
|
|
18
|
+
export type VectorClockComparison = 'before' | 'after' | 'concurrent' | 'equal';
|
|
19
|
+
/**
|
|
20
|
+
* Main sync message envelope wrapping all sync operations
|
|
21
|
+
*/
|
|
22
|
+
export interface SyncMessage {
|
|
23
|
+
sequenceNumber: number;
|
|
24
|
+
timestampMs: number;
|
|
25
|
+
nodeId: string;
|
|
26
|
+
vectorClock: VectorClock;
|
|
27
|
+
payload: SyncPayload;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Union type for different sync payload types
|
|
31
|
+
*/
|
|
32
|
+
export type SyncPayload = {
|
|
33
|
+
type: 'episode_sync';
|
|
34
|
+
data: EpisodeSync;
|
|
35
|
+
} | {
|
|
36
|
+
type: 'skill_sync';
|
|
37
|
+
data: SkillSync;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'causal_edge_sync';
|
|
40
|
+
data: CausalEdgeSync;
|
|
41
|
+
} | {
|
|
42
|
+
type: 'reconciliation_request';
|
|
43
|
+
data: FullReconciliationRequest;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'reconciliation_response';
|
|
46
|
+
data: FullReconciliationResponse;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Supported operations for episode sync
|
|
50
|
+
*/
|
|
51
|
+
export declare enum EpisodeSyncOperation {
|
|
52
|
+
CREATE = "CREATE",
|
|
53
|
+
UPDATE = "UPDATE",
|
|
54
|
+
DELETE = "DELETE"
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Episode synchronization message
|
|
58
|
+
*/
|
|
59
|
+
export interface EpisodeSync {
|
|
60
|
+
operation: EpisodeSyncOperation;
|
|
61
|
+
episodeId: number;
|
|
62
|
+
episodeData: SyncableEpisode;
|
|
63
|
+
causalClock: VectorClock;
|
|
64
|
+
signature: Uint8Array;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Serializable episode data for sync
|
|
68
|
+
*/
|
|
69
|
+
export interface SyncableEpisode {
|
|
70
|
+
id?: number;
|
|
71
|
+
agentId: string;
|
|
72
|
+
sessionId: string;
|
|
73
|
+
task: string;
|
|
74
|
+
input: string;
|
|
75
|
+
output: string;
|
|
76
|
+
critique?: string;
|
|
77
|
+
reward: number;
|
|
78
|
+
success: boolean;
|
|
79
|
+
latencyMs: number;
|
|
80
|
+
timestamp: number;
|
|
81
|
+
metadata?: Record<string, any>;
|
|
82
|
+
vectorClock: VectorClock;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* G-Counter (Grow-only Counter) for skill usage tracking
|
|
86
|
+
*/
|
|
87
|
+
export interface GCounter {
|
|
88
|
+
nodeCounters: Map<string, number>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* LWW-Register (Last-Write-Wins Register) for scalar values
|
|
92
|
+
*/
|
|
93
|
+
export interface LWWRegister<T> {
|
|
94
|
+
value: T;
|
|
95
|
+
timestamp: number;
|
|
96
|
+
nodeId: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* OR-Set (Observed-Remove Set) for set-based values
|
|
100
|
+
*/
|
|
101
|
+
export interface ORSet<T> {
|
|
102
|
+
adds: Map<T, Set<string>>;
|
|
103
|
+
removes: Set<string>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Skill synchronization message with CRDT fields
|
|
107
|
+
*/
|
|
108
|
+
export interface SkillSync {
|
|
109
|
+
skillId: number;
|
|
110
|
+
skillName: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
uses: GCounter;
|
|
113
|
+
successRate: LWWRegister<number>;
|
|
114
|
+
avgReward: LWWRegister<number>;
|
|
115
|
+
avgLatencyMs: LWWRegister<number>;
|
|
116
|
+
sourceEpisodes: ORSet<number>;
|
|
117
|
+
signature: Record<string, any>;
|
|
118
|
+
version: VectorClock;
|
|
119
|
+
metadata?: Record<string, any>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Metadata for conflict resolution in causal edges
|
|
123
|
+
*/
|
|
124
|
+
export interface ConflictResolutionMetadata {
|
|
125
|
+
experimentIds?: number[];
|
|
126
|
+
evidenceCount: number;
|
|
127
|
+
lastModifiedBy: string;
|
|
128
|
+
lastModifiedAt: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Causal edge synchronization message
|
|
132
|
+
*/
|
|
133
|
+
export interface CausalEdgeSync {
|
|
134
|
+
edgeId: number;
|
|
135
|
+
fromMemoryId: number;
|
|
136
|
+
fromMemoryType: 'episode' | 'skill' | 'note' | 'fact';
|
|
137
|
+
toMemoryId: number;
|
|
138
|
+
toMemoryType: 'episode' | 'skill' | 'note' | 'fact';
|
|
139
|
+
similarity: number;
|
|
140
|
+
uplift?: number;
|
|
141
|
+
confidence: number;
|
|
142
|
+
sampleSize?: number;
|
|
143
|
+
evidenceIds?: number[];
|
|
144
|
+
experimentIds?: number[];
|
|
145
|
+
confounderScore?: number;
|
|
146
|
+
mechanism?: string;
|
|
147
|
+
version: VectorClock;
|
|
148
|
+
conflictMetadata: ConflictResolutionMetadata;
|
|
149
|
+
metadata?: Record<string, any>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Data types that can be reconciled
|
|
153
|
+
*/
|
|
154
|
+
export type ReconciliableDataType = 'episodes' | 'skills' | 'edges' | 'experiments';
|
|
155
|
+
/**
|
|
156
|
+
* Request for full reconciliation
|
|
157
|
+
*/
|
|
158
|
+
export interface FullReconciliationRequest {
|
|
159
|
+
lastSyncTimestamp: number;
|
|
160
|
+
currentState: VectorClock;
|
|
161
|
+
dataTypes: ReconciliableDataType[];
|
|
162
|
+
requestId: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Response with full state for reconciliation
|
|
166
|
+
*/
|
|
167
|
+
export interface FullReconciliationResponse {
|
|
168
|
+
requestId: string;
|
|
169
|
+
episodes: EpisodeSync[];
|
|
170
|
+
skills: SkillSync[];
|
|
171
|
+
edges: CausalEdgeSync[];
|
|
172
|
+
authoritativeClock: VectorClock;
|
|
173
|
+
merkleRoot: string;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* State summary for efficient reconciliation
|
|
177
|
+
*/
|
|
178
|
+
export interface StateSummary {
|
|
179
|
+
episodes: {
|
|
180
|
+
count: number;
|
|
181
|
+
merkleRoot: string;
|
|
182
|
+
vectorClock: VectorClock;
|
|
183
|
+
};
|
|
184
|
+
skills: {
|
|
185
|
+
count: number;
|
|
186
|
+
merkleRoot: string;
|
|
187
|
+
vectorClock: VectorClock;
|
|
188
|
+
};
|
|
189
|
+
edges: {
|
|
190
|
+
count: number;
|
|
191
|
+
merkleRoot: string;
|
|
192
|
+
vectorClock: VectorClock;
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Reconciliation report with results
|
|
197
|
+
*/
|
|
198
|
+
export interface ReconciliationReport {
|
|
199
|
+
success: boolean;
|
|
200
|
+
startTime: number;
|
|
201
|
+
endTime: number;
|
|
202
|
+
duration: number;
|
|
203
|
+
recordsAdded: number;
|
|
204
|
+
recordsUpdated: number;
|
|
205
|
+
recordsDeleted: number;
|
|
206
|
+
conflictsResolved: number;
|
|
207
|
+
conflictsUnresolved: number;
|
|
208
|
+
errors: string[];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* JWT claims for API authorization
|
|
212
|
+
*/
|
|
213
|
+
export interface JWTClaims {
|
|
214
|
+
iss: string;
|
|
215
|
+
sub: string;
|
|
216
|
+
exp: number;
|
|
217
|
+
iat: number;
|
|
218
|
+
roles: UserRole[];
|
|
219
|
+
scopes: AuthScope[];
|
|
220
|
+
networkId: string;
|
|
221
|
+
metadata?: Record<string, any>;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* User roles
|
|
225
|
+
*/
|
|
226
|
+
export declare enum UserRole {
|
|
227
|
+
ADMIN = "admin",
|
|
228
|
+
AGENT = "agent",
|
|
229
|
+
OBSERVER = "observer",
|
|
230
|
+
LEARNER = "learner"
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Authorization scopes
|
|
234
|
+
*/
|
|
235
|
+
export type AuthScope = 'episodes:read' | 'episodes:write' | 'episodes:delete' | 'skills:read' | 'skills:write' | 'skills:delete' | 'edges:read' | 'edges:write' | 'edges:delete' | 'experiments:read' | 'experiments:write' | 'reconciliation:request';
|
|
236
|
+
/**
|
|
237
|
+
* Node registration data
|
|
238
|
+
*/
|
|
239
|
+
export interface NodeRegistration {
|
|
240
|
+
nodeId: string;
|
|
241
|
+
certificate: string;
|
|
242
|
+
publicKey: string;
|
|
243
|
+
networkId: string;
|
|
244
|
+
registeredAt: number;
|
|
245
|
+
expiresAt: number;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Network topology types
|
|
249
|
+
*/
|
|
250
|
+
export declare enum NetworkTopology {
|
|
251
|
+
HUB_AND_SPOKE = "hub_and_spoke",
|
|
252
|
+
MESH = "mesh",
|
|
253
|
+
HIERARCHICAL = "hierarchical"
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Conflict resolution strategies
|
|
257
|
+
*/
|
|
258
|
+
export declare enum ConflictResolutionStrategy {
|
|
259
|
+
AUTO = "auto",// Automatic resolution using configured algorithms
|
|
260
|
+
MANUAL = "manual",// Flag conflicts for manual resolution
|
|
261
|
+
INTERACTIVE = "interactive"
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Sync mode
|
|
265
|
+
*/
|
|
266
|
+
export declare enum SyncMode {
|
|
267
|
+
INCREMENTAL = "incremental",
|
|
268
|
+
FULL = "full",
|
|
269
|
+
HYBRID = "hybrid"
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Server configuration
|
|
273
|
+
*/
|
|
274
|
+
export interface ServerConfig {
|
|
275
|
+
port: number;
|
|
276
|
+
host: string;
|
|
277
|
+
maxConnections: number;
|
|
278
|
+
maxStreamsPerConnection: number;
|
|
279
|
+
tlsCertPath: string;
|
|
280
|
+
tlsKeyPath: string;
|
|
281
|
+
caCertPath: string;
|
|
282
|
+
jwtSecret: string;
|
|
283
|
+
jwtExpirationMs: number;
|
|
284
|
+
changelogRetentionDays: number;
|
|
285
|
+
changelogMaxRecords: number;
|
|
286
|
+
reconciliationIntervalMs: number;
|
|
287
|
+
batchSize: number;
|
|
288
|
+
compressionThreshold: number;
|
|
289
|
+
maxMemoryPerConnection: number;
|
|
290
|
+
topology: NetworkTopology;
|
|
291
|
+
networkId: string;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Client configuration
|
|
295
|
+
*/
|
|
296
|
+
export interface ClientConfig {
|
|
297
|
+
nodeId: string;
|
|
298
|
+
serverUrl: string;
|
|
299
|
+
clientCertPath: string;
|
|
300
|
+
clientKeyPath: string;
|
|
301
|
+
caCertPath: string;
|
|
302
|
+
jwt: string;
|
|
303
|
+
mode: SyncMode;
|
|
304
|
+
incrementalIntervalMs: number;
|
|
305
|
+
fullReconciliationIntervalMs: number;
|
|
306
|
+
autoSync: boolean;
|
|
307
|
+
conflictResolutionStrategy: ConflictResolutionStrategy;
|
|
308
|
+
batchSize: number;
|
|
309
|
+
compressionThreshold: number;
|
|
310
|
+
retryMaxAttempts: number;
|
|
311
|
+
retryBackoffMs: number;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Server status
|
|
315
|
+
*/
|
|
316
|
+
export interface ServerStatus {
|
|
317
|
+
uptime: number;
|
|
318
|
+
activeConnections: number;
|
|
319
|
+
totalConnectionsHandled: number;
|
|
320
|
+
activeStreams: number;
|
|
321
|
+
changelogSize: number;
|
|
322
|
+
lastReconciliation: number;
|
|
323
|
+
avgSyncLatencyMs: number;
|
|
324
|
+
throughputBytesPerSec: number;
|
|
325
|
+
conflictsPerMinute: number;
|
|
326
|
+
cpuUsagePercent: number;
|
|
327
|
+
memoryUsageBytes: number;
|
|
328
|
+
diskUsageBytes: number;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Client status
|
|
332
|
+
*/
|
|
333
|
+
export interface ClientStatus {
|
|
334
|
+
connected: boolean;
|
|
335
|
+
nodeId: string;
|
|
336
|
+
serverUrl: string;
|
|
337
|
+
lastSyncTimestamp: number;
|
|
338
|
+
nextSyncScheduled: number;
|
|
339
|
+
episodesSynced: number;
|
|
340
|
+
skillsSynced: number;
|
|
341
|
+
edgesSynced: number;
|
|
342
|
+
conflictsEncountered: number;
|
|
343
|
+
conflictsAutoResolved: number;
|
|
344
|
+
connectionUptimeMs: number;
|
|
345
|
+
reconnectAttempts: number;
|
|
346
|
+
lastError?: string;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Sync result for a single operation
|
|
350
|
+
*/
|
|
351
|
+
export interface SyncResult {
|
|
352
|
+
success: boolean;
|
|
353
|
+
duration: number;
|
|
354
|
+
episodesAdded: number;
|
|
355
|
+
episodesUpdated: number;
|
|
356
|
+
episodesDeleted: number;
|
|
357
|
+
skillsAdded: number;
|
|
358
|
+
skillsUpdated: number;
|
|
359
|
+
edgesAdded: number;
|
|
360
|
+
edgesUpdated: number;
|
|
361
|
+
conflictsTotal: number;
|
|
362
|
+
conflictsAutoResolved: number;
|
|
363
|
+
conflictsPending: number;
|
|
364
|
+
errors: SyncError[];
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Sync error details
|
|
368
|
+
*/
|
|
369
|
+
export interface SyncError {
|
|
370
|
+
code: string;
|
|
371
|
+
message: string;
|
|
372
|
+
dataType: ReconciliableDataType;
|
|
373
|
+
recordId?: number;
|
|
374
|
+
timestamp: number;
|
|
375
|
+
retryable: boolean;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Type guard for episode sync
|
|
379
|
+
*/
|
|
380
|
+
export declare function isEpisodeSync(payload: SyncPayload): payload is {
|
|
381
|
+
type: 'episode_sync';
|
|
382
|
+
data: EpisodeSync;
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* Type guard for skill sync
|
|
386
|
+
*/
|
|
387
|
+
export declare function isSkillSync(payload: SyncPayload): payload is {
|
|
388
|
+
type: 'skill_sync';
|
|
389
|
+
data: SkillSync;
|
|
390
|
+
};
|
|
391
|
+
/**
|
|
392
|
+
* Type guard for causal edge sync
|
|
393
|
+
*/
|
|
394
|
+
export declare function isCausalEdgeSync(payload: SyncPayload): payload is {
|
|
395
|
+
type: 'causal_edge_sync';
|
|
396
|
+
data: CausalEdgeSync;
|
|
397
|
+
};
|
|
398
|
+
/**
|
|
399
|
+
* Compare two vector clocks
|
|
400
|
+
*/
|
|
401
|
+
export declare function compareVectorClocks(a: VectorClock, b: VectorClock): VectorClockComparison;
|
|
402
|
+
/**
|
|
403
|
+
* Merge two vector clocks (take max of each node)
|
|
404
|
+
*/
|
|
405
|
+
export declare function mergeVectorClocks(a: VectorClock, b: VectorClock): VectorClock;
|
|
406
|
+
/**
|
|
407
|
+
* Increment vector clock for local node
|
|
408
|
+
*/
|
|
409
|
+
export declare function incrementVectorClock(clock: VectorClock, nodeId: string): VectorClock;
|
|
410
|
+
/**
|
|
411
|
+
* Create empty vector clock
|
|
412
|
+
*/
|
|
413
|
+
export declare function createVectorClock(): VectorClock;
|
|
414
|
+
/**
|
|
415
|
+
* Increment G-Counter for a node
|
|
416
|
+
*/
|
|
417
|
+
export declare function incrementGCounter(counter: GCounter, nodeId: string, delta?: number): GCounter;
|
|
418
|
+
/**
|
|
419
|
+
* Get total value of G-Counter
|
|
420
|
+
*/
|
|
421
|
+
export declare function getGCounterValue(counter: GCounter): number;
|
|
422
|
+
/**
|
|
423
|
+
* Merge two G-Counters (take max per node)
|
|
424
|
+
*/
|
|
425
|
+
export declare function mergeGCounter(a: GCounter, b: GCounter): GCounter;
|
|
426
|
+
/**
|
|
427
|
+
* Update LWW-Register with new value
|
|
428
|
+
*/
|
|
429
|
+
export declare function updateLWWRegister<T>(register: LWWRegister<T>, newValue: T, nodeId: string, timestamp?: number): LWWRegister<T>;
|
|
430
|
+
/**
|
|
431
|
+
* Merge two LWW-Registers (keep most recent)
|
|
432
|
+
*/
|
|
433
|
+
export declare function mergeLWWRegister<T>(a: LWWRegister<T>, b: LWWRegister<T>): LWWRegister<T>;
|
|
434
|
+
/**
|
|
435
|
+
* Add element to OR-Set
|
|
436
|
+
*/
|
|
437
|
+
export declare function addToORSet<T>(set: ORSet<T>, element: T, uniqueTag: string): ORSet<T>;
|
|
438
|
+
/**
|
|
439
|
+
* Remove element from OR-Set
|
|
440
|
+
*/
|
|
441
|
+
export declare function removeFromORSet<T>(set: ORSet<T>, element: T): ORSet<T>;
|
|
442
|
+
/**
|
|
443
|
+
* Get current elements in OR-Set
|
|
444
|
+
*/
|
|
445
|
+
export declare function getORSetElements<T>(set: ORSet<T>): Set<T>;
|
|
446
|
+
/**
|
|
447
|
+
* Merge two OR-Sets
|
|
448
|
+
*/
|
|
449
|
+
export declare function mergeORSet<T>(a: ORSet<T>, b: ORSet<T>): ORSet<T>;
|
|
450
|
+
/**
|
|
451
|
+
* Weighted average for numeric conflict resolution
|
|
452
|
+
*/
|
|
453
|
+
export declare function weightedAverage(v1: number, w1: number, v2: number, w2: number): number;
|
|
454
|
+
/**
|
|
455
|
+
* Determine authorization for operation
|
|
456
|
+
*/
|
|
457
|
+
export declare function isAuthorized(jwt: JWTClaims, requiredScope: AuthScope): boolean;
|
|
458
|
+
/**
|
|
459
|
+
* Check if JWT is expired
|
|
460
|
+
*/
|
|
461
|
+
export declare function isJWTExpired(jwt: JWTClaims): boolean;
|
|
462
|
+
/**
|
|
463
|
+
* Generate unique tag for OR-Set operations
|
|
464
|
+
*/
|
|
465
|
+
export declare function generateUniqueTag(nodeId: string, timestamp?: number): string;
|
|
466
|
+
/**
|
|
467
|
+
* Events emitted by sync client
|
|
468
|
+
*/
|
|
469
|
+
export type SyncEvent = {
|
|
470
|
+
type: 'sync_started';
|
|
471
|
+
timestamp: number;
|
|
472
|
+
} | {
|
|
473
|
+
type: 'sync_completed';
|
|
474
|
+
result: SyncResult;
|
|
475
|
+
} | {
|
|
476
|
+
type: 'sync_failed';
|
|
477
|
+
error: SyncError;
|
|
478
|
+
} | {
|
|
479
|
+
type: 'conflict_detected';
|
|
480
|
+
conflict: ConflictData;
|
|
481
|
+
} | {
|
|
482
|
+
type: 'conflict_resolved';
|
|
483
|
+
conflict: ConflictData;
|
|
484
|
+
resolution: any;
|
|
485
|
+
} | {
|
|
486
|
+
type: 'connection_established';
|
|
487
|
+
nodeId: string;
|
|
488
|
+
serverUrl: string;
|
|
489
|
+
} | {
|
|
490
|
+
type: 'connection_lost';
|
|
491
|
+
reason: string;
|
|
492
|
+
} | {
|
|
493
|
+
type: 'reconnecting';
|
|
494
|
+
attempt: number;
|
|
495
|
+
} | {
|
|
496
|
+
type: 'reconciliation_started';
|
|
497
|
+
requestId: string;
|
|
498
|
+
} | {
|
|
499
|
+
type: 'reconciliation_completed';
|
|
500
|
+
report: ReconciliationReport;
|
|
501
|
+
};
|
|
502
|
+
/**
|
|
503
|
+
* Conflict data for manual resolution
|
|
504
|
+
*/
|
|
505
|
+
export interface ConflictData {
|
|
506
|
+
dataType: ReconciliableDataType;
|
|
507
|
+
recordId: number;
|
|
508
|
+
localVersion: any;
|
|
509
|
+
remoteVersion: any;
|
|
510
|
+
localVectorClock: VectorClock;
|
|
511
|
+
remoteVectorClock: VectorClock;
|
|
512
|
+
detectedAt: number;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Event handler type
|
|
516
|
+
*/
|
|
517
|
+
export type SyncEventHandler = (event: SyncEvent) => void;
|
|
518
|
+
//# sourceMappingURL=quic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quic.d.ts","sourceRoot":"","sources":["../../src/types/quic.ts"],"names":[],"mappings":"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"}
|