@weave_protocol/domere 1.0.18 → 1.2.0

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.
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Dōmere - State Manager
3
+ *
4
+ * Distributed state management with locking, branching, and conflict resolution
5
+ * for multi-agent AI orchestration systems.
6
+ */
7
+ export type ConflictResolution = 'last-write-wins' | 'first-write-wins' | 'merge' | 'manual';
8
+ export type LockType = 'exclusive' | 'shared';
9
+ export interface StateEntry {
10
+ key: string;
11
+ value: any;
12
+ version: number;
13
+ hash: string;
14
+ created_at: Date;
15
+ updated_at: Date;
16
+ updated_by: string;
17
+ branch: string;
18
+ metadata: Record<string, any>;
19
+ }
20
+ export interface Lock {
21
+ id: string;
22
+ key: string;
23
+ type: LockType;
24
+ holder: string;
25
+ acquired_at: Date;
26
+ expires_at: Date;
27
+ renewed_count: number;
28
+ }
29
+ export interface LockRequest {
30
+ key: string;
31
+ holder: string;
32
+ type?: LockType;
33
+ duration_ms?: number;
34
+ wait_ms?: number;
35
+ }
36
+ export interface LockResult {
37
+ acquired: boolean;
38
+ lock?: Lock;
39
+ reason?: string;
40
+ current_holder?: string;
41
+ retry_after_ms?: number;
42
+ }
43
+ export interface Branch {
44
+ name: string;
45
+ parent: string;
46
+ created_at: Date;
47
+ created_by: string;
48
+ head_version: number;
49
+ merged: boolean;
50
+ merged_at?: Date;
51
+ }
52
+ export interface MergeResult {
53
+ success: boolean;
54
+ conflicts: Conflict[];
55
+ merged_keys: string[];
56
+ source_branch: string;
57
+ target_branch: string;
58
+ }
59
+ export interface Conflict {
60
+ key: string;
61
+ source_value: any;
62
+ target_value: any;
63
+ source_version: number;
64
+ target_version: number;
65
+ base_value?: any;
66
+ }
67
+ export interface StateChange {
68
+ type: 'set' | 'delete' | 'merge';
69
+ key: string;
70
+ old_value?: any;
71
+ new_value?: any;
72
+ version: number;
73
+ timestamp: Date;
74
+ agent_id: string;
75
+ branch: string;
76
+ }
77
+ export interface StateSnapshot {
78
+ id: string;
79
+ branch: string;
80
+ timestamp: Date;
81
+ entries: Map<string, StateEntry>;
82
+ version: number;
83
+ }
84
+ export declare class StateManager {
85
+ private state;
86
+ private locks;
87
+ private branches;
88
+ private snapshots;
89
+ private changeLog;
90
+ private changeCallbacks;
91
+ private conflictResolution;
92
+ private defaultLockDuration;
93
+ constructor(options?: {
94
+ conflict_resolution?: ConflictResolution;
95
+ default_lock_duration_ms?: number;
96
+ });
97
+ /**
98
+ * Get a value
99
+ */
100
+ get(key: string, options?: {
101
+ branch?: string;
102
+ }): Promise<any | undefined>;
103
+ /**
104
+ * Get entry with metadata
105
+ */
106
+ getEntry(key: string, options?: {
107
+ branch?: string;
108
+ }): Promise<StateEntry | undefined>;
109
+ /**
110
+ * Set a value
111
+ */
112
+ set(key: string, value: any, options?: {
113
+ branch?: string;
114
+ agent_id?: string;
115
+ metadata?: Record<string, any>;
116
+ require_lock?: boolean;
117
+ }): Promise<StateEntry>;
118
+ /**
119
+ * Delete a value
120
+ */
121
+ delete(key: string, options?: {
122
+ branch?: string;
123
+ agent_id?: string;
124
+ }): Promise<boolean>;
125
+ /**
126
+ * List all keys
127
+ */
128
+ keys(options?: {
129
+ branch?: string;
130
+ prefix?: string;
131
+ }): Promise<string[]>;
132
+ /**
133
+ * Check if key exists
134
+ */
135
+ has(key: string, options?: {
136
+ branch?: string;
137
+ }): Promise<boolean>;
138
+ /**
139
+ * Acquire a lock
140
+ */
141
+ acquireLock(request: LockRequest): Promise<LockResult>;
142
+ /**
143
+ * Release a lock
144
+ */
145
+ releaseLock(key: string, holder: string): Promise<boolean>;
146
+ /**
147
+ * Renew a lock
148
+ */
149
+ renewLock(key: string, holder: string, duration_ms?: number): Promise<LockResult>;
150
+ /**
151
+ * Check if key is locked
152
+ */
153
+ isLocked(key: string): {
154
+ locked: boolean;
155
+ holder?: string;
156
+ expires_at?: Date;
157
+ };
158
+ /**
159
+ * Get all locks held by an agent
160
+ */
161
+ getLocksForHolder(holder: string): Lock[];
162
+ /**
163
+ * Release all locks held by an agent
164
+ */
165
+ releaseAllLocks(holder: string): Promise<number>;
166
+ /**
167
+ * Create a branch
168
+ */
169
+ createBranch(name: string, options?: {
170
+ parent?: string;
171
+ created_by?: string;
172
+ }): Promise<Branch>;
173
+ /**
174
+ * List branches
175
+ */
176
+ listBranches(): Branch[];
177
+ /**
178
+ * Get branch info
179
+ */
180
+ getBranch(name: string): Branch | undefined;
181
+ /**
182
+ * Merge branch into target
183
+ */
184
+ merge(source: string, target: string, options?: {
185
+ agent_id?: string;
186
+ resolution?: ConflictResolution;
187
+ }): Promise<MergeResult>;
188
+ /**
189
+ * Resolve conflicts manually
190
+ */
191
+ resolveConflicts(conflicts: Conflict[], resolutions: Map<string, 'source' | 'target' | any>, options?: {
192
+ source: string;
193
+ target: string;
194
+ agent_id?: string;
195
+ }): Promise<void>;
196
+ /**
197
+ * Delete a branch
198
+ */
199
+ deleteBranch(name: string): Promise<boolean>;
200
+ /**
201
+ * Create a snapshot
202
+ */
203
+ createSnapshot(options?: {
204
+ branch?: string;
205
+ }): Promise<StateSnapshot>;
206
+ /**
207
+ * Restore from snapshot
208
+ */
209
+ restoreSnapshot(snapshotId: string): Promise<void>;
210
+ /**
211
+ * List snapshots
212
+ */
213
+ listSnapshots(branch?: string): StateSnapshot[];
214
+ /**
215
+ * Delete a snapshot
216
+ */
217
+ deleteSnapshot(snapshotId: string): boolean;
218
+ /**
219
+ * Get change history
220
+ */
221
+ getChanges(options?: {
222
+ branch?: string;
223
+ key?: string;
224
+ agent_id?: string;
225
+ since?: Date;
226
+ limit?: number;
227
+ }): StateChange[];
228
+ /**
229
+ * Subscribe to changes
230
+ */
231
+ onChange(callback: (change: StateChange) => void): () => void;
232
+ private notifyChange;
233
+ private cleanupExpiredLocks;
234
+ /**
235
+ * Get state statistics
236
+ */
237
+ getStats(): {
238
+ branches: number;
239
+ total_keys: number;
240
+ active_locks: number;
241
+ snapshots: number;
242
+ changes_logged: number;
243
+ };
244
+ /**
245
+ * Export state for backup
246
+ */
247
+ exportState(branch?: string): Promise<string>;
248
+ /**
249
+ * Import state from backup
250
+ */
251
+ importState(data: string, options?: {
252
+ merge?: boolean;
253
+ }): Promise<{
254
+ imported_keys: number;
255
+ }>;
256
+ }
257
+ export default StateManager;
258
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/orchestration/state.ts"],"names":[],"mappings":"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"}