@almadar/server 2.1.0 → 2.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.
- package/package.json +1 -1
- package/dist/contracts.d.ts +0 -174
- package/dist/contracts.d.ts.map +0 -1
- package/dist/deepagent/__tests__/memory.test.d.ts +0 -6
- package/dist/deepagent/__tests__/memory.test.d.ts.map +0 -1
- package/dist/deepagent/__tests__/session.test.d.ts +0 -6
- package/dist/deepagent/__tests__/session.test.d.ts.map +0 -1
- package/dist/deepagent/__tests__/skill-agent.test.d.ts +0 -6
- package/dist/deepagent/__tests__/skill-agent.test.d.ts.map +0 -1
- package/dist/deepagent/memory.d.ts +0 -17
- package/dist/deepagent/memory.d.ts.map +0 -1
- package/dist/deepagent/memory.js +0 -48
- package/dist/deepagent/memory.js.map +0 -1
- package/dist/deepagent/session.d.ts +0 -17
- package/dist/deepagent/session.d.ts.map +0 -1
- package/dist/deepagent/session.js +0 -68
- package/dist/deepagent/session.js.map +0 -1
- package/dist/deepagent/skill-agent.d.ts +0 -22
- package/dist/deepagent/skill-agent.d.ts.map +0 -1
- package/dist/deepagent/skill-agent.js +0 -114
- package/dist/deepagent/skill-agent.js.map +0 -1
- package/dist/index.js +0 -2598
- package/dist/index.js.map +0 -1
- package/dist/lib/db.d.ts +0 -36
- package/dist/lib/db.d.ts.map +0 -1
- package/dist/lib/debugRouter.d.ts +0 -21
- package/dist/lib/debugRouter.d.ts.map +0 -1
- package/dist/lib/env.d.ts +0 -16
- package/dist/lib/env.d.ts.map +0 -1
- package/dist/lib/eventBus.d.ts +0 -44
- package/dist/lib/eventBus.d.ts.map +0 -1
- package/dist/lib/eventBusTransport.d.ts +0 -143
- package/dist/lib/eventBusTransport.d.ts.map +0 -1
- package/dist/lib/eventPersistence.d.ts +0 -151
- package/dist/lib/eventPersistence.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -6
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -288
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/logger.d.ts +0 -7
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/serviceDiscovery.d.ts +0 -168
- package/dist/lib/serviceDiscovery.d.ts.map +0 -1
- package/dist/lib/websocket.d.ts +0 -41
- package/dist/lib/websocket.d.ts.map +0 -1
- package/dist/middleware/__tests__/multi-user.test.d.ts +0 -6
- package/dist/middleware/__tests__/multi-user.test.d.ts.map +0 -1
- package/dist/middleware/authenticateFirebase.d.ts +0 -4
- package/dist/middleware/authenticateFirebase.d.ts.map +0 -1
- package/dist/middleware/errorHandler.d.ts +0 -53
- package/dist/middleware/errorHandler.d.ts.map +0 -1
- package/dist/middleware/index.d.ts +0 -4
- package/dist/middleware/index.d.ts.map +0 -1
- package/dist/middleware/index.js +0 -284
- package/dist/middleware/index.js.map +0 -1
- package/dist/middleware/multi-user.d.ts +0 -34
- package/dist/middleware/multi-user.d.ts.map +0 -1
- package/dist/middleware/multi-user.js +0 -76
- package/dist/middleware/multi-user.js.map +0 -1
- package/dist/middleware/validation.d.ts +0 -15
- package/dist/middleware/validation.d.ts.map +0 -1
- package/dist/routes/__tests__/observability.test.d.ts +0 -6
- package/dist/routes/__tests__/observability.test.d.ts.map +0 -1
- package/dist/routes/observability.d.ts +0 -11
- package/dist/routes/observability.d.ts.map +0 -1
- package/dist/routes/observability.js +0 -62
- package/dist/routes/observability.js.map +0 -1
- package/dist/services/DataService.d.ts +0 -70
- package/dist/services/DataService.d.ts.map +0 -1
- package/dist/services/MockDataService.d.ts +0 -110
- package/dist/services/MockDataService.d.ts.map +0 -1
- package/dist/services/index.d.ts +0 -8
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -735
- package/dist/services/index.js.map +0 -1
- package/dist/stores/ChangeSetStore.d.ts +0 -24
- package/dist/stores/ChangeSetStore.d.ts.map +0 -1
- package/dist/stores/SchemaProtectionService.d.ts +0 -23
- package/dist/stores/SchemaProtectionService.d.ts.map +0 -1
- package/dist/stores/SchemaStore.d.ts +0 -52
- package/dist/stores/SchemaStore.d.ts.map +0 -1
- package/dist/stores/SnapshotStore.d.ts +0 -26
- package/dist/stores/SnapshotStore.d.ts.map +0 -1
- package/dist/stores/ValidationStore.d.ts +0 -19
- package/dist/stores/ValidationStore.d.ts.map +0 -1
- package/dist/stores/firestoreFormat.d.ts +0 -21
- package/dist/stores/firestoreFormat.d.ts.map +0 -1
- package/dist/stores/index.d.ts +0 -14
- package/dist/stores/index.d.ts.map +0 -1
- package/dist/stores/index.js +0 -519
- package/dist/stores/index.js.map +0 -1
- package/dist/utils/index.d.ts +0 -9
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -106
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/queryFilters.d.ts +0 -87
- package/dist/utils/queryFilters.d.ts.map +0 -1
- package/dist/websocket/__tests__/state-sync.test.d.ts +0 -6
- package/dist/websocket/__tests__/state-sync.test.d.ts.map +0 -1
- package/dist/websocket/state-sync.d.ts +0 -39
- package/dist/websocket/state-sync.d.ts.map +0 -1
- package/dist/websocket/state-sync.js +0 -77
- package/dist/websocket/state-sync.js.map +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Debug Events Router
|
|
3
|
-
*
|
|
4
|
-
* Provides diagnostic endpoints for inspecting the server EventBus.
|
|
5
|
-
* Only active when NODE_ENV=development.
|
|
6
|
-
*
|
|
7
|
-
* Endpoints:
|
|
8
|
-
* GET /event-log - Recent emitted events with listener counts
|
|
9
|
-
* DELETE /event-log - Clear the event log
|
|
10
|
-
* GET /listeners - Registered listener counts per event
|
|
11
|
-
* POST /seed - Seed MockDataService with entity data
|
|
12
|
-
*
|
|
13
|
-
* @packageDocumentation
|
|
14
|
-
*/
|
|
15
|
-
import { Router } from 'express';
|
|
16
|
-
/**
|
|
17
|
-
* Creates an Express router with debug endpoints for the server EventBus.
|
|
18
|
-
* Returns a no-op router in production (no routes registered).
|
|
19
|
-
*/
|
|
20
|
-
export declare function debugEventsRouter(): Router;
|
|
21
|
-
//# sourceMappingURL=debugRouter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugRouter.d.ts","sourceRoot":"","sources":["../../src/lib/debugRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAsD1C"}
|
package/dist/lib/env.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export declare const env: {
|
|
2
|
-
NODE_ENV: "development" | "production" | "test";
|
|
3
|
-
PORT: number;
|
|
4
|
-
CORS_ORIGIN: string | string[];
|
|
5
|
-
API_PREFIX: string;
|
|
6
|
-
USE_MOCK_DATA: boolean;
|
|
7
|
-
DATABASE_URL?: string | undefined;
|
|
8
|
-
FIREBASE_PROJECT_ID?: string | undefined;
|
|
9
|
-
FIREBASE_CLIENT_EMAIL?: string | undefined;
|
|
10
|
-
FIREBASE_PRIVATE_KEY?: string | undefined;
|
|
11
|
-
FIREBASE_SERVICE_ACCOUNT_PATH?: string | undefined;
|
|
12
|
-
FIRESTORE_EMULATOR_HOST?: string | undefined;
|
|
13
|
-
FIREBASE_AUTH_EMULATOR_HOST?: string | undefined;
|
|
14
|
-
MOCK_SEED?: number | undefined;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=env.d.ts.map
|
package/dist/lib/env.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CAAc,CAAC"}
|
package/dist/lib/eventBus.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server EventBus - Singleton for server-side cross-trait communication
|
|
3
|
-
*
|
|
4
|
-
* This EventBus enables:
|
|
5
|
-
* - Server-side trait event emission after CRUD operations
|
|
6
|
-
* - Server-side trait listeners responding to events
|
|
7
|
-
* - Cross-client event broadcast via WebSocket
|
|
8
|
-
*
|
|
9
|
-
* @packageDocumentation
|
|
10
|
-
*/
|
|
11
|
-
type EventHandler = (payload: unknown, meta?: Record<string, unknown>) => void;
|
|
12
|
-
export interface EventLogEntry {
|
|
13
|
-
event: string;
|
|
14
|
-
payload: unknown;
|
|
15
|
-
timestamp: number;
|
|
16
|
-
listenerCount: number;
|
|
17
|
-
wildcardListenerCount: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Simple EventBus implementation for server-side events
|
|
21
|
-
*/
|
|
22
|
-
export declare class EventBus {
|
|
23
|
-
private handlers;
|
|
24
|
-
private debug;
|
|
25
|
-
private eventLog;
|
|
26
|
-
constructor(options?: {
|
|
27
|
-
debug?: boolean;
|
|
28
|
-
});
|
|
29
|
-
on(event: string, handler: EventHandler): () => void;
|
|
30
|
-
off(event: string, handler: EventHandler): void;
|
|
31
|
-
emit(event: string, payload?: unknown, meta?: Record<string, unknown>): void;
|
|
32
|
-
getRecentEvents(limit?: number): EventLogEntry[];
|
|
33
|
-
clearEventLog(): void;
|
|
34
|
-
getListenerCounts(): Record<string, number>;
|
|
35
|
-
clear(): void;
|
|
36
|
-
}
|
|
37
|
-
export declare function getServerEventBus(): EventBus;
|
|
38
|
-
export declare function resetServerEventBus(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Type-safe event emission helper
|
|
41
|
-
*/
|
|
42
|
-
export declare function emitEntityEvent(entityType: string, action: 'CREATED' | 'UPDATED' | 'DELETED', payload: Record<string, unknown>): void;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=eventBus.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"eventBus.d.ts","sourceRoot":"","sources":["../../src/lib/eventBus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAID;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAA6C;IAC7D,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAIzC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAYpD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI/C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgD5E,eAAe,CAAC,KAAK,SAAK,GAAG,aAAa,EAAE;IAI5C,aAAa,IAAI,IAAI;IAIrB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ3C,KAAK,IAAI,IAAI;CAId;AAOD,wBAAgB,iBAAiB,IAAI,QAAQ,CAO5C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAGN"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EventBus Transport Layer — Pluggable backends for distributed event communication
|
|
3
|
-
*
|
|
4
|
-
* Transports enable emit/listen to work across processes:
|
|
5
|
-
* - InMemoryTransport: Default, same-process (no-op relay)
|
|
6
|
-
* - RedisTransport: Redis pub/sub for cross-process communication
|
|
7
|
-
*
|
|
8
|
-
* The DistributedEventBus wraps the existing EventBus and relays events
|
|
9
|
-
* through a transport. Local listeners still fire immediately; the transport
|
|
10
|
-
* handles cross-process delivery.
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
-
import { type EventLogEntry } from './eventBus.js';
|
|
15
|
-
/**
|
|
16
|
-
* Message shape sent over the transport wire.
|
|
17
|
-
*/
|
|
18
|
-
export interface TransportMessage {
|
|
19
|
-
event: string;
|
|
20
|
-
payload: unknown;
|
|
21
|
-
meta?: Record<string, unknown>;
|
|
22
|
-
/** Source instance ID to prevent echo loops */
|
|
23
|
-
sourceId: string;
|
|
24
|
-
timestamp: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Callback invoked when a message arrives from another process.
|
|
28
|
-
*/
|
|
29
|
-
export type TransportReceiver = (message: TransportMessage) => void;
|
|
30
|
-
/**
|
|
31
|
-
* Pluggable transport interface for cross-process event delivery.
|
|
32
|
-
*/
|
|
33
|
-
export interface IEventBusTransport {
|
|
34
|
-
/** Publish a message to the transport */
|
|
35
|
-
publish(message: TransportMessage): Promise<void>;
|
|
36
|
-
/** Subscribe to incoming messages from other processes */
|
|
37
|
-
subscribe(receiver: TransportReceiver): Promise<void>;
|
|
38
|
-
/** Unsubscribe and clean up resources */
|
|
39
|
-
close(): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* No-op transport for single-process mode.
|
|
43
|
-
* Events stay in the local EventBus only.
|
|
44
|
-
*/
|
|
45
|
-
export declare class InMemoryTransport implements IEventBusTransport {
|
|
46
|
-
publish(): Promise<void>;
|
|
47
|
-
subscribe(): Promise<void>;
|
|
48
|
-
close(): Promise<void>;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Options for RedisTransport.
|
|
52
|
-
*/
|
|
53
|
-
export interface RedisTransportOptions {
|
|
54
|
-
/** Redis channel name for event relay (default: 'almadar:events') */
|
|
55
|
-
channel?: string;
|
|
56
|
-
/**
|
|
57
|
-
* Publish function — sends serialized message to Redis channel.
|
|
58
|
-
* This is injected so we don't depend on a specific Redis client library.
|
|
59
|
-
*/
|
|
60
|
-
publishFn: (channel: string, message: string) => Promise<void>;
|
|
61
|
-
/**
|
|
62
|
-
* Subscribe function — registers a callback for messages on a Redis channel.
|
|
63
|
-
* This is injected so we don't depend on a specific Redis client library.
|
|
64
|
-
*/
|
|
65
|
-
subscribeFn: (channel: string, callback: (message: string) => void) => Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Unsubscribe/cleanup function.
|
|
68
|
-
*/
|
|
69
|
-
closeFn?: () => Promise<void>;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Redis pub/sub transport for cross-process event delivery.
|
|
73
|
-
*
|
|
74
|
-
* Uses dependency-injected publish/subscribe functions so the transport
|
|
75
|
-
* is not coupled to any specific Redis client library (ioredis, redis, etc.).
|
|
76
|
-
*
|
|
77
|
-
* Usage with ioredis:
|
|
78
|
-
* ```typescript
|
|
79
|
-
* import Redis from 'ioredis';
|
|
80
|
-
* const pub = new Redis(process.env.REDIS_URL);
|
|
81
|
-
* const sub = new Redis(process.env.REDIS_URL);
|
|
82
|
-
*
|
|
83
|
-
* const transport = new RedisTransport({
|
|
84
|
-
* publishFn: (ch, msg) => pub.publish(ch, msg).then(() => {}),
|
|
85
|
-
* subscribeFn: (ch, cb) => { sub.subscribe(ch); sub.on('message', (_, msg) => cb(msg)); return Promise.resolve(); },
|
|
86
|
-
* closeFn: async () => { await pub.quit(); await sub.quit(); },
|
|
87
|
-
* });
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export declare class RedisTransport implements IEventBusTransport {
|
|
91
|
-
private channel;
|
|
92
|
-
private publishFn;
|
|
93
|
-
private subscribeFn;
|
|
94
|
-
private closeFn;
|
|
95
|
-
constructor(options: RedisTransportOptions);
|
|
96
|
-
publish(message: TransportMessage): Promise<void>;
|
|
97
|
-
subscribe(receiver: TransportReceiver): Promise<void>;
|
|
98
|
-
close(): Promise<void>;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* DistributedEventBus wraps the existing EventBus and relays events
|
|
102
|
-
* through a pluggable transport for cross-process communication.
|
|
103
|
-
*
|
|
104
|
-
* - Local emit → fires local listeners + publishes to transport
|
|
105
|
-
* - Transport message received → fires local listeners (skips re-publish)
|
|
106
|
-
*
|
|
107
|
-
* Drop-in replacement for EventBus — same API, same singleton pattern.
|
|
108
|
-
*/
|
|
109
|
-
export declare class DistributedEventBus {
|
|
110
|
-
private localBus;
|
|
111
|
-
private transport;
|
|
112
|
-
private instanceId;
|
|
113
|
-
private isRelaying;
|
|
114
|
-
constructor(options?: {
|
|
115
|
-
debug?: boolean;
|
|
116
|
-
transport?: IEventBusTransport;
|
|
117
|
-
});
|
|
118
|
-
/**
|
|
119
|
-
* Initialize the transport subscription. Call once at startup.
|
|
120
|
-
*/
|
|
121
|
-
connect(): Promise<void>;
|
|
122
|
-
/**
|
|
123
|
-
* Emit an event locally and publish to transport for other processes.
|
|
124
|
-
*/
|
|
125
|
-
emit(event: string, payload?: unknown, meta?: Record<string, unknown>): void;
|
|
126
|
-
/** Subscribe to an event */
|
|
127
|
-
on(event: string, handler: (payload: unknown, meta?: Record<string, unknown>) => void): () => void;
|
|
128
|
-
/** Unsubscribe from an event */
|
|
129
|
-
off(event: string, handler: (payload: unknown, meta?: Record<string, unknown>) => void): void;
|
|
130
|
-
/** Get recent events (dev diagnostics) */
|
|
131
|
-
getRecentEvents(limit?: number): EventLogEntry[];
|
|
132
|
-
/** Clear event log */
|
|
133
|
-
clearEventLog(): void;
|
|
134
|
-
/** Get listener counts */
|
|
135
|
-
getListenerCounts(): Record<string, number>;
|
|
136
|
-
/** Clear all listeners and log */
|
|
137
|
-
clear(): void;
|
|
138
|
-
/** Disconnect transport */
|
|
139
|
-
disconnect(): Promise<void>;
|
|
140
|
-
/** Get the instance ID (for debugging) */
|
|
141
|
-
getInstanceId(): string;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=eventBusTransport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"eventBusTransport.d.ts","sourceRoot":"","sources":["../../src/lib/eventBusTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event Persistence Layer — Optional durable event storage for replay and debugging
|
|
3
|
-
*
|
|
4
|
-
* Wraps the EventBus to persist emitted events. Supports:
|
|
5
|
-
* - In-memory storage (default, for development)
|
|
6
|
-
* - Configurable retention (TTL-based cleanup)
|
|
7
|
-
* - Replay API: query events by name, time range, or source
|
|
8
|
-
* - Required for saga compensation and distributed debugging
|
|
9
|
-
*
|
|
10
|
-
* @packageDocumentation
|
|
11
|
-
*/
|
|
12
|
-
/** Persisted event record */
|
|
13
|
-
export interface PersistedEvent {
|
|
14
|
-
/** Unique event ID */
|
|
15
|
-
id: string;
|
|
16
|
-
/** Event name (e.g., 'LLM_RESPONSE') */
|
|
17
|
-
eventName: string;
|
|
18
|
-
/** Event payload */
|
|
19
|
-
payload: unknown;
|
|
20
|
-
/** Source orbital/service that emitted this event */
|
|
21
|
-
source: string;
|
|
22
|
-
/** Timestamp when event was emitted */
|
|
23
|
-
timestamp: number;
|
|
24
|
-
/** Trace ID for distributed tracing correlation */
|
|
25
|
-
traceId: string;
|
|
26
|
-
/** Optional metadata */
|
|
27
|
-
meta?: Record<string, unknown>;
|
|
28
|
-
}
|
|
29
|
-
/** Query filters for replaying events */
|
|
30
|
-
export interface EventQuery {
|
|
31
|
-
/** Filter by event name (exact match) */
|
|
32
|
-
eventName?: string;
|
|
33
|
-
/** Filter by source orbital */
|
|
34
|
-
source?: string;
|
|
35
|
-
/** Filter by trace ID */
|
|
36
|
-
traceId?: string;
|
|
37
|
-
/** Events after this timestamp */
|
|
38
|
-
after?: number;
|
|
39
|
-
/** Events before this timestamp */
|
|
40
|
-
before?: number;
|
|
41
|
-
/** Maximum number of events to return */
|
|
42
|
-
limit?: number;
|
|
43
|
-
/** Sort order */
|
|
44
|
-
order?: 'asc' | 'desc';
|
|
45
|
-
}
|
|
46
|
-
/** Options for the event persistence layer */
|
|
47
|
-
export interface EventPersistenceOptions {
|
|
48
|
-
/** Whether persistence is enabled (default: true) */
|
|
49
|
-
enabled?: boolean;
|
|
50
|
-
/** TTL in milliseconds for event retention (default: 24 hours) */
|
|
51
|
-
retentionMs?: number;
|
|
52
|
-
/** Maximum events to store (default: 10000) */
|
|
53
|
-
maxEvents?: number;
|
|
54
|
-
/** Cleanup interval in milliseconds (default: 5 minutes) */
|
|
55
|
-
cleanupIntervalMs?: number;
|
|
56
|
-
/** Default source identifier */
|
|
57
|
-
defaultSource?: string;
|
|
58
|
-
}
|
|
59
|
-
/** Storage backend interface */
|
|
60
|
-
export interface IEventStore {
|
|
61
|
-
/** Persist an event */
|
|
62
|
-
store(event: PersistedEvent): Promise<void>;
|
|
63
|
-
/** Query events */
|
|
64
|
-
query(filters: EventQuery): Promise<PersistedEvent[]>;
|
|
65
|
-
/** Get a single event by ID */
|
|
66
|
-
get(id: string): Promise<PersistedEvent | null>;
|
|
67
|
-
/** Delete events older than timestamp */
|
|
68
|
-
deleteOlderThan(timestamp: number): Promise<number>;
|
|
69
|
-
/** Get total event count */
|
|
70
|
-
count(): Promise<number>;
|
|
71
|
-
/** Clear all stored events */
|
|
72
|
-
clear(): Promise<void>;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* In-memory event store for development and testing.
|
|
76
|
-
*/
|
|
77
|
-
export declare class InMemoryEventStore implements IEventStore {
|
|
78
|
-
private events;
|
|
79
|
-
private index;
|
|
80
|
-
store(event: PersistedEvent): Promise<void>;
|
|
81
|
-
query(filters: EventQuery): Promise<PersistedEvent[]>;
|
|
82
|
-
get(id: string): Promise<PersistedEvent | null>;
|
|
83
|
-
deleteOlderThan(timestamp: number): Promise<number>;
|
|
84
|
-
count(): Promise<number>;
|
|
85
|
-
clear(): Promise<void>;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Event persistence layer that can be attached to an EventBus.
|
|
89
|
-
*
|
|
90
|
-
* Usage:
|
|
91
|
-
* ```typescript
|
|
92
|
-
* const persistence = new EventPersistence({ retentionMs: 3600000 });
|
|
93
|
-
* persistence.startCleanup();
|
|
94
|
-
*
|
|
95
|
-
* // Persist an event
|
|
96
|
-
* await persistence.persist('LLM_RESPONSE', { content: '...' }, { source: 'llm-service' });
|
|
97
|
-
*
|
|
98
|
-
* // Replay events
|
|
99
|
-
* const events = await persistence.replay({ eventName: 'LLM_RESPONSE', limit: 10 });
|
|
100
|
-
*
|
|
101
|
-
* // Stop cleanup on shutdown
|
|
102
|
-
* persistence.stopCleanup();
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
export declare class EventPersistence {
|
|
106
|
-
private store;
|
|
107
|
-
private options;
|
|
108
|
-
private cleanupTimer;
|
|
109
|
-
constructor(options?: EventPersistenceOptions, store?: IEventStore);
|
|
110
|
-
/**
|
|
111
|
-
* Persist an event.
|
|
112
|
-
*/
|
|
113
|
-
persist(eventName: string, payload: unknown, meta?: {
|
|
114
|
-
source?: string;
|
|
115
|
-
traceId?: string;
|
|
116
|
-
[key: string]: unknown;
|
|
117
|
-
}): Promise<PersistedEvent>;
|
|
118
|
-
/**
|
|
119
|
-
* Replay events matching the query filters.
|
|
120
|
-
*/
|
|
121
|
-
replay(query: EventQuery): Promise<PersistedEvent[]>;
|
|
122
|
-
/**
|
|
123
|
-
* Get a single event by ID.
|
|
124
|
-
*/
|
|
125
|
-
getEvent(id: string): Promise<PersistedEvent | null>;
|
|
126
|
-
/**
|
|
127
|
-
* Get event count.
|
|
128
|
-
*/
|
|
129
|
-
getEventCount(): Promise<number>;
|
|
130
|
-
/**
|
|
131
|
-
* Run cleanup — delete events older than retention period.
|
|
132
|
-
*/
|
|
133
|
-
cleanup(): Promise<number>;
|
|
134
|
-
/**
|
|
135
|
-
* Start periodic cleanup timer.
|
|
136
|
-
*/
|
|
137
|
-
startCleanup(): void;
|
|
138
|
-
/**
|
|
139
|
-
* Stop periodic cleanup timer.
|
|
140
|
-
*/
|
|
141
|
-
stopCleanup(): void;
|
|
142
|
-
/**
|
|
143
|
-
* Clear all persisted events.
|
|
144
|
-
*/
|
|
145
|
-
clear(): Promise<void>;
|
|
146
|
-
/**
|
|
147
|
-
* Get the underlying store (for testing or custom queries).
|
|
148
|
-
*/
|
|
149
|
-
getStore(): IEventStore;
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=eventPersistence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"eventPersistence.d.ts","sourceRoot":"","sources":["../../src/lib/eventPersistence.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { env } from './env.js';
|
|
2
|
-
export { getFirestore, getAuth, admin } from './db.js';
|
|
3
|
-
export { logger } from './logger.js';
|
|
4
|
-
export { getServerEventBus, resetServerEventBus, emitEntityEvent } from './eventBus.js';
|
|
5
|
-
export { setupEventBroadcast, getWebSocketServer, closeWebSocketServer, getConnectedClientCount, } from './websocket.js';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|