@weavelogic/knowledge-graph-agent 0.3.0 → 0.4.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.
Files changed (149) hide show
  1. package/README.md +290 -3
  2. package/dist/_virtual/index10.js +2 -2
  3. package/dist/_virtual/index6.js +2 -2
  4. package/dist/_virtual/index7.js +2 -2
  5. package/dist/_virtual/index8.js +2 -2
  6. package/dist/_virtual/index9.js +2 -2
  7. package/dist/audit/config.d.ts +150 -0
  8. package/dist/audit/config.d.ts.map +1 -0
  9. package/dist/audit/config.js +111 -0
  10. package/dist/audit/config.js.map +1 -0
  11. package/dist/audit/index.d.ts +38 -0
  12. package/dist/audit/index.d.ts.map +1 -0
  13. package/dist/audit/services/audit-chain.d.ts +276 -0
  14. package/dist/audit/services/audit-chain.d.ts.map +1 -0
  15. package/dist/audit/services/audit-chain.js +502 -0
  16. package/dist/audit/services/audit-chain.js.map +1 -0
  17. package/dist/audit/services/index.d.ts +11 -0
  18. package/dist/audit/services/index.d.ts.map +1 -0
  19. package/dist/audit/services/syndication.d.ts +334 -0
  20. package/dist/audit/services/syndication.d.ts.map +1 -0
  21. package/dist/audit/services/syndication.js +589 -0
  22. package/dist/audit/services/syndication.js.map +1 -0
  23. package/dist/audit/types.d.ts +453 -0
  24. package/dist/audit/types.d.ts.map +1 -0
  25. package/dist/cli/commands/audit.d.ts +21 -0
  26. package/dist/cli/commands/audit.d.ts.map +1 -0
  27. package/dist/cli/commands/audit.js +621 -0
  28. package/dist/cli/commands/audit.js.map +1 -0
  29. package/dist/cli/commands/vector.d.ts +14 -0
  30. package/dist/cli/commands/vector.d.ts.map +1 -0
  31. package/dist/cli/commands/vector.js +429 -0
  32. package/dist/cli/commands/vector.js.map +1 -0
  33. package/dist/cli/commands/workflow.d.ts +12 -0
  34. package/dist/cli/commands/workflow.d.ts.map +1 -0
  35. package/dist/cli/commands/workflow.js +471 -0
  36. package/dist/cli/commands/workflow.js.map +1 -0
  37. package/dist/cli/index.d.ts.map +1 -1
  38. package/dist/cli/index.js +26 -0
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/database/schemas/index.d.ts +85 -0
  41. package/dist/database/schemas/index.d.ts.map +1 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +9 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/mcp-server/tools/audit/checkpoint.d.ts +58 -0
  47. package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
  48. package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
  49. package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
  50. package/dist/mcp-server/tools/audit/index.d.ts +53 -0
  51. package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
  52. package/dist/mcp-server/tools/audit/index.js +12 -0
  53. package/dist/mcp-server/tools/audit/index.js.map +1 -0
  54. package/dist/mcp-server/tools/audit/query.d.ts +58 -0
  55. package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
  56. package/dist/mcp-server/tools/audit/query.js +125 -0
  57. package/dist/mcp-server/tools/audit/query.js.map +1 -0
  58. package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
  59. package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
  60. package/dist/mcp-server/tools/audit/sync.js +126 -0
  61. package/dist/mcp-server/tools/audit/sync.js.map +1 -0
  62. package/dist/mcp-server/tools/index.d.ts +3 -0
  63. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  64. package/dist/mcp-server/tools/registry.js +90 -0
  65. package/dist/mcp-server/tools/registry.js.map +1 -1
  66. package/dist/mcp-server/tools/vector/index.d.ts +12 -0
  67. package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
  68. package/dist/mcp-server/tools/vector/index.js +12 -0
  69. package/dist/mcp-server/tools/vector/index.js.map +1 -0
  70. package/dist/mcp-server/tools/vector/search.d.ts +41 -0
  71. package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
  72. package/dist/mcp-server/tools/vector/search.js +224 -0
  73. package/dist/mcp-server/tools/vector/search.js.map +1 -0
  74. package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
  75. package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/vector/trajectory.js +170 -0
  77. package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
  78. package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
  79. package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
  80. package/dist/mcp-server/tools/vector/upsert.js +175 -0
  81. package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
  82. package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
  83. package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
  84. package/dist/mcp-server/tools/workflow/index.js +12 -0
  85. package/dist/mcp-server/tools/workflow/index.js.map +1 -0
  86. package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
  87. package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
  88. package/dist/mcp-server/tools/workflow/list.js +195 -0
  89. package/dist/mcp-server/tools/workflow/list.js.map +1 -0
  90. package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
  91. package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
  92. package/dist/mcp-server/tools/workflow/start.js +165 -0
  93. package/dist/mcp-server/tools/workflow/start.js.map +1 -0
  94. package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
  95. package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
  96. package/dist/mcp-server/tools/workflow/status.js +97 -0
  97. package/dist/mcp-server/tools/workflow/status.js.map +1 -0
  98. package/dist/node_modules/ajv/dist/compile/index.js +1 -1
  99. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  100. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  101. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  102. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  103. package/dist/vector/config.d.ts +300 -0
  104. package/dist/vector/config.d.ts.map +1 -0
  105. package/dist/vector/config.js +124 -0
  106. package/dist/vector/config.js.map +1 -0
  107. package/dist/vector/index.d.ts +50 -0
  108. package/dist/vector/index.d.ts.map +1 -0
  109. package/dist/vector/services/index.d.ts +13 -0
  110. package/dist/vector/services/index.d.ts.map +1 -0
  111. package/dist/vector/services/trajectory-tracker.d.ts +405 -0
  112. package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
  113. package/dist/vector/services/trajectory-tracker.js +445 -0
  114. package/dist/vector/services/trajectory-tracker.js.map +1 -0
  115. package/dist/vector/services/vector-store.d.ts +339 -0
  116. package/dist/vector/services/vector-store.d.ts.map +1 -0
  117. package/dist/vector/services/vector-store.js +748 -0
  118. package/dist/vector/services/vector-store.js.map +1 -0
  119. package/dist/vector/types.d.ts +677 -0
  120. package/dist/vector/types.d.ts.map +1 -0
  121. package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
  122. package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
  123. package/dist/workflow/adapters/goap-adapter.js +706 -0
  124. package/dist/workflow/adapters/goap-adapter.js.map +1 -0
  125. package/dist/workflow/adapters/index.d.ts +10 -0
  126. package/dist/workflow/adapters/index.d.ts.map +1 -0
  127. package/dist/workflow/config.d.ts +135 -0
  128. package/dist/workflow/config.d.ts.map +1 -0
  129. package/dist/workflow/config.js +92 -0
  130. package/dist/workflow/config.js.map +1 -0
  131. package/dist/workflow/handlers/index.d.ts +9 -0
  132. package/dist/workflow/handlers/index.d.ts.map +1 -0
  133. package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
  134. package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
  135. package/dist/workflow/handlers/webhook-handlers.js +454 -0
  136. package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
  137. package/dist/workflow/index.d.ts +42 -0
  138. package/dist/workflow/index.d.ts.map +1 -0
  139. package/dist/workflow/services/index.d.ts +9 -0
  140. package/dist/workflow/services/index.d.ts.map +1 -0
  141. package/dist/workflow/services/workflow-service.d.ts +318 -0
  142. package/dist/workflow/services/workflow-service.d.ts.map +1 -0
  143. package/dist/workflow/services/workflow-service.js +577 -0
  144. package/dist/workflow/services/workflow-service.js.map +1 -0
  145. package/dist/workflow/types.d.ts +470 -0
  146. package/dist/workflow/types.d.ts.map +1 -0
  147. package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
  148. package/dist/workflow/workflows/realtime-collab.d.ts.map +1 -0
  149. package/package.json +1 -1
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Syndication Service
3
+ *
4
+ * Handles cross-environment event synchronization between
5
+ * multiple audit chain instances using peer-to-peer communication.
6
+ *
7
+ * Features:
8
+ * - Peer connection management with health tracking
9
+ * - Bidirectional event synchronization
10
+ * - Conflict detection and resolution
11
+ * - Automatic periodic sync with configurable intervals
12
+ * - Exponential backoff for failed sync attempts
13
+ *
14
+ * @module audit/services/syndication
15
+ */
16
+ import type { Did } from '../types.js';
17
+ import { AuditChain } from './audit-chain.js';
18
+ /**
19
+ * Peer connection status
20
+ */
21
+ export type PeerStatus = 'connected' | 'disconnected' | 'syncing' | 'error';
22
+ /**
23
+ * Peer information
24
+ */
25
+ export interface PeerInfo {
26
+ /** Unique peer identifier */
27
+ id: string;
28
+ /** Network endpoint URL */
29
+ endpoint: string;
30
+ /** Peer's decentralized identifier */
31
+ did?: Did;
32
+ /** Current connection status */
33
+ status: PeerStatus;
34
+ /** Timestamp of last successful sync */
35
+ lastSyncTime?: Date;
36
+ /** Height of last synced checkpoint */
37
+ lastCheckpointHeight?: number;
38
+ /** Total events received from this peer */
39
+ eventsReceived: number;
40
+ /** Total events sent to this peer */
41
+ eventsSent: number;
42
+ /** Cumulative error count */
43
+ errors: number;
44
+ /** Last error message */
45
+ lastError?: string;
46
+ /** Connection latency in milliseconds */
47
+ latency?: number;
48
+ }
49
+ /**
50
+ * Sync operation result
51
+ */
52
+ export interface SyncResult {
53
+ /** ID of the synced peer */
54
+ peerId: string;
55
+ /** Whether sync completed successfully */
56
+ success: boolean;
57
+ /** Number of events received during sync */
58
+ eventsReceived: number;
59
+ /** Number of events sent during sync */
60
+ eventsSent: number;
61
+ /** New checkpoint height after sync */
62
+ newCheckpointHeight?: number;
63
+ /** Sync duration in milliseconds */
64
+ duration: number;
65
+ /** Error message if sync failed */
66
+ error?: string;
67
+ }
68
+ /**
69
+ * Syndication service configuration
70
+ */
71
+ export interface SyndicationConfig {
72
+ /** Local audit chain instance */
73
+ auditChain: AuditChain;
74
+ /** Initial peer endpoints */
75
+ peers: string[];
76
+ /** Enable automatic periodic synchronization */
77
+ autoSync: boolean;
78
+ /** Interval between auto-syncs in milliseconds */
79
+ syncInterval: number;
80
+ /** Timeout for sync requests in milliseconds */
81
+ requestTimeout: number;
82
+ /** Maximum events to transfer per sync request */
83
+ maxEventsPerRequest: number;
84
+ /** Retry failed syncs automatically */
85
+ retryOnError: boolean;
86
+ /** Maximum retry attempts before giving up */
87
+ maxRetries: number;
88
+ /** Base delay for exponential backoff in milliseconds */
89
+ retryBaseDelay: number;
90
+ /** Maximum delay between retries in milliseconds */
91
+ retryMaxDelay: number;
92
+ }
93
+ /**
94
+ * Syndication Service
95
+ *
96
+ * Manages peer-to-peer synchronization of audit events across
97
+ * multiple environments. Provides:
98
+ *
99
+ * - Peer discovery and connection management
100
+ * - Bidirectional event synchronization
101
+ * - Conflict detection with hash-based resolution
102
+ * - Automatic periodic sync with health monitoring
103
+ * - Statistics and observability
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const auditChain = createAuditChain({ agentDid: 'did:exo:agent-1' });
108
+ * await auditChain.initialize();
109
+ *
110
+ * const syndication = createSyndicationService({
111
+ * auditChain,
112
+ * peers: ['https://peer1.example.com/audit', 'https://peer2.example.com/audit'],
113
+ * autoSync: true,
114
+ * syncInterval: 60000, // 1 minute
115
+ * });
116
+ *
117
+ * await syndication.start();
118
+ *
119
+ * // Manual sync trigger
120
+ * const results = await syndication.syncWithAllPeers();
121
+ * ```
122
+ */
123
+ export declare class SyndicationService {
124
+ private config;
125
+ private peers;
126
+ private syncTimer?;
127
+ private isRunning;
128
+ private syncInProgress;
129
+ private retryAttempts;
130
+ /**
131
+ * Create a new syndication service instance
132
+ *
133
+ * @param config - Configuration with required auditChain
134
+ */
135
+ constructor(config: Partial<SyndicationConfig> & {
136
+ auditChain: AuditChain;
137
+ });
138
+ /**
139
+ * Generate a deterministic peer ID from endpoint URL
140
+ *
141
+ * @param endpoint - Peer endpoint URL
142
+ * @returns Generated peer ID
143
+ */
144
+ private generatePeerId;
145
+ /**
146
+ * Calculate exponential backoff delay
147
+ *
148
+ * @param attempt - Current retry attempt number
149
+ * @returns Delay in milliseconds
150
+ */
151
+ private calculateBackoff;
152
+ /**
153
+ * Start the syndication service
154
+ *
155
+ * Connects to all configured peers and starts automatic
156
+ * synchronization if enabled.
157
+ */
158
+ start(): Promise<void>;
159
+ /**
160
+ * Stop the syndication service
161
+ *
162
+ * Disconnects from all peers and stops automatic synchronization.
163
+ */
164
+ stop(): Promise<void>;
165
+ /**
166
+ * Connect to all configured peers
167
+ */
168
+ private connectToPeers;
169
+ /**
170
+ * Establish connection to a specific peer
171
+ *
172
+ * @param peerId - Peer identifier
173
+ * @returns True if connection successful
174
+ */
175
+ connectToPeer(peerId: string): Promise<boolean>;
176
+ /**
177
+ * Disconnect from a specific peer
178
+ *
179
+ * @param peerId - Peer identifier
180
+ */
181
+ disconnectPeer(peerId: string): Promise<void>;
182
+ /**
183
+ * Start automatic periodic synchronization
184
+ */
185
+ private startAutoSync;
186
+ /**
187
+ * Stop automatic synchronization
188
+ */
189
+ stopAutoSync(): void;
190
+ /**
191
+ * Synchronize with all connected peers
192
+ *
193
+ * @returns Array of sync results for each peer
194
+ */
195
+ syncWithAllPeers(): Promise<SyncResult[]>;
196
+ /**
197
+ * Synchronize with a specific peer
198
+ *
199
+ * @param peerId - Peer identifier
200
+ * @returns Sync result
201
+ */
202
+ syncWithPeer(peerId: string): Promise<SyncResult>;
203
+ /**
204
+ * Fetch events from a peer
205
+ *
206
+ * In production, this would make an HTTP/WebSocket request.
207
+ *
208
+ * @param peer - Peer information
209
+ * @param request - Sync request
210
+ * @returns Sync response
211
+ */
212
+ private fetchFromPeer;
213
+ /**
214
+ * Send events to a peer
215
+ *
216
+ * In production, this would make an HTTP/WebSocket request.
217
+ *
218
+ * @param peer - Peer information
219
+ * @param events - Events to send
220
+ * @returns Number of events successfully sent
221
+ */
222
+ private sendToPeer;
223
+ /**
224
+ * Get events since a specific checkpoint height
225
+ *
226
+ * Uses the audit chain's query capability to retrieve events
227
+ * that occurred after the specified checkpoint.
228
+ *
229
+ * @param checkpointHeight - Height to query from
230
+ * @returns Array of events
231
+ */
232
+ private getEventsSince;
233
+ /**
234
+ * Add a new peer to the syndication network
235
+ *
236
+ * @param endpoint - Peer endpoint URL
237
+ * @returns Generated peer ID
238
+ */
239
+ addPeer(endpoint: string): string;
240
+ /**
241
+ * Remove a peer from the syndication network
242
+ *
243
+ * @param peerId - Peer identifier
244
+ * @returns True if peer was removed
245
+ */
246
+ removePeer(peerId: string): boolean;
247
+ /**
248
+ * Get information about a specific peer
249
+ *
250
+ * @param peerId - Peer identifier
251
+ * @returns Peer information or undefined
252
+ */
253
+ getPeer(peerId: string): PeerInfo | undefined;
254
+ /**
255
+ * Get all registered peers
256
+ *
257
+ * @returns Array of all peer information
258
+ */
259
+ getAllPeers(): PeerInfo[];
260
+ /**
261
+ * Get currently connected peers
262
+ *
263
+ * @returns Array of connected peer information
264
+ */
265
+ getConnectedPeers(): PeerInfo[];
266
+ /**
267
+ * Get peers in error state
268
+ *
269
+ * @returns Array of error state peer information
270
+ */
271
+ getErrorPeers(): PeerInfo[];
272
+ /**
273
+ * Get comprehensive service statistics
274
+ *
275
+ * @returns Statistics object
276
+ */
277
+ getStats(): {
278
+ totalPeers: number;
279
+ connectedPeers: number;
280
+ syncingPeers: number;
281
+ errorPeers: number;
282
+ totalEventsReceived: number;
283
+ totalEventsSent: number;
284
+ totalErrors: number;
285
+ isRunning: boolean;
286
+ autoSyncEnabled: boolean;
287
+ syncInterval: number;
288
+ };
289
+ /**
290
+ * Force an immediate sync with all peers
291
+ *
292
+ * @returns Array of sync results
293
+ */
294
+ forceSyncNow(): Promise<SyncResult[]>;
295
+ /**
296
+ * Check if the service is currently running
297
+ *
298
+ * @returns True if running
299
+ */
300
+ isServiceRunning(): boolean;
301
+ /**
302
+ * Check if a sync is currently in progress
303
+ *
304
+ * @returns True if syncing
305
+ */
306
+ isSyncing(): boolean;
307
+ /**
308
+ * Update service configuration
309
+ *
310
+ * Note: Some config changes require restart to take effect.
311
+ *
312
+ * @param updates - Configuration updates
313
+ */
314
+ updateConfig(updates: Partial<Omit<SyndicationConfig, 'auditChain'>>): void;
315
+ }
316
+ /**
317
+ * Create a syndication service instance
318
+ *
319
+ * @param config - Configuration with required auditChain
320
+ * @returns Configured SyndicationService instance
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * const syndication = createSyndicationService({
325
+ * auditChain,
326
+ * peers: ['https://peer1.example.com/audit'],
327
+ * autoSync: true,
328
+ * });
329
+ * ```
330
+ */
331
+ export declare function createSyndicationService(config: Partial<SyndicationConfig> & {
332
+ auditChain: AuditChain;
333
+ }): SyndicationService;
334
+ //# sourceMappingURL=syndication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syndication.d.ts","sourceRoot":"","sources":["../../../src/audit/services/syndication.ts"],"names":[],"mappings":"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"}