@vinhnt-sdk/core 0.1.1 → 0.1.2

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 (37) hide show
  1. package/README.md +194 -12
  2. package/dist/event-bus/global-bus.d.ts +8 -0
  3. package/dist/event-bus/global-bus.d.ts.map +1 -1
  4. package/dist/event-bus/global-bus.js +48 -0
  5. package/dist/event-bus/global-bus.js.map +1 -1
  6. package/dist/event-bus/in-memory-bus.d.ts +14 -0
  7. package/dist/event-bus/in-memory-bus.d.ts.map +1 -1
  8. package/dist/event-bus/in-memory-bus.js +53 -0
  9. package/dist/event-bus/in-memory-bus.js.map +1 -1
  10. package/dist/event-bus/types.d.ts +17 -0
  11. package/dist/event-bus/types.d.ts.map +1 -1
  12. package/dist/index.d.ts +222 -105
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +180 -63
  15. package/dist/index.js.map +1 -1
  16. package/dist/kernel/circuit-breaker.d.ts +19 -1
  17. package/dist/kernel/circuit-breaker.d.ts.map +1 -1
  18. package/dist/kernel/circuit-breaker.js +50 -9
  19. package/dist/kernel/circuit-breaker.js.map +1 -1
  20. package/dist/kernel/kernel-error.d.ts +4 -2
  21. package/dist/kernel/kernel-error.d.ts.map +1 -1
  22. package/dist/kernel/kernel-error.js +7 -7
  23. package/dist/kernel/kernel-error.js.map +1 -1
  24. package/dist/kernel/kernel-types.d.ts +76 -1
  25. package/dist/kernel/kernel-types.d.ts.map +1 -1
  26. package/dist/kernel/kernel-types.js.map +1 -1
  27. package/dist/kernel/kernel.d.ts +34 -4
  28. package/dist/kernel/kernel.d.ts.map +1 -1
  29. package/dist/kernel/kernel.js +181 -12
  30. package/dist/kernel/kernel.js.map +1 -1
  31. package/dist/kernel/model-caller.d.ts +2 -0
  32. package/dist/kernel/model-caller.d.ts.map +1 -1
  33. package/dist/kernel/model-caller.js +8 -8
  34. package/dist/kernel/model-caller.js.map +1 -1
  35. package/dist/system-context/sources/instructions-source.js +1 -1
  36. package/dist/system-context/sources/instructions-source.js.map +1 -1
  37. package/package.json +8 -61
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @vinhnt-sdk/core
2
2
 
3
- Core agent engine for vinhnt-sdk kernel, orchestration, workflows.
3
+ > Version: 0.1.2-beta.0 | Status: BETA
4
+
5
+ Core agent engine for vinhnt-sdk — kernel, orchestration, streaming, event bus, and circuit breaker.
4
6
 
5
7
  ## Install
6
8
 
@@ -15,34 +17,214 @@ pnpm add @vinhnt-sdk/core
15
17
  ## Quick Start
16
18
 
17
19
  ```typescript
18
- import { AgentKernel, NullRunEventStore } from '@vinhnt-sdk/core';
20
+ import { AgentKernel } from '@vinhnt-sdk/core';
21
+ import type { ModelProvider } from '@vinhnt-sdk/schema';
22
+
23
+ // Create a simple in-memory store
24
+ class SimpleStore {
25
+ private events: any[] = [];
26
+ async append(event: any) { this.events.push(event); }
27
+ async list(runId: string) { return this.events.filter(e => e.runId === runId); }
28
+ async getNextSequence() { return 1; }
29
+ async saveSnapshot() {}
30
+ async getSnapshot() { return null; }
31
+ async getSnapshotAfterSequence() { return null; }
32
+ subscribe() { return () => {}; }
33
+ }
19
34
 
35
+ // Create kernel
20
36
  const kernel = new AgentKernel({
21
37
  model: yourModelProvider,
22
- store: new NullRunEventStore(),
38
+ store: new SimpleStore(),
23
39
  maxSteps: 50,
24
40
  });
25
41
 
26
- const handle = kernel.run('Refactor this function');
42
+ // Create run handle
43
+ const handle = kernel.createRunHandle("Hello!", {
44
+ sessionId: "session-123",
45
+ agentId: "my-agent",
46
+ userId: "user-1",
47
+ });
48
+
49
+ // Listen to events
50
+ handle.onEvent((event) => {
51
+ console.log(event.type); // "agent.started", "agent.completed", etc.
52
+ });
53
+
54
+ // Wait for completion
27
55
  const result = await handle.completed;
56
+ console.log(result.status); // "succeeded"
28
57
  ```
29
58
 
30
59
  ## API Reference
31
60
 
61
+ ### Core Classes
62
+
32
63
  | Export | Type | Description |
33
64
  |--------|------|-------------|
34
- | `AgentKernel` | Class | Run loop orchestrator with circuit breaker |
35
- | `DefaultPluginManager` | Class | Plugin activation and lifecycle |
65
+ | `AgentKernel` | Class | Main kernel for agent orchestration |
36
66
  | `InMemoryEventBus` | Class | Typed pub/sub event bus |
37
- | `NullRunEventStore` | Class | No-op store for development |
38
- | `defineTool` | Function | Define custom tools with Zod schemas |
39
- | `LearningEngine`, `ContextCompressor` | Class | Knowledge and memory management |
67
+ | `InMemorySessionState` | Class | Session state management |
68
+ | `SessionRunCoordinator` | Class | Run coordination |
69
+ | `InMemoryAgentRegistry` | Class | Agent registry |
70
+ | `InMemoryModelRegistry` | Class | Model registry |
71
+ | `InMemoryApprovalStore` | Class | Approval storage |
72
+ | `WorkspaceManager` | Class | Workspace management |
73
+ | `Tracer` | Class | Execution tracing |
74
+
75
+ ### Kernel Methods
76
+
77
+ | Method | Description |
78
+ |--------|-------------|
79
+ | `createRunHandle(prompt, ctx)` | Create a run handle with lifecycle management |
80
+ | `run(prompt, ctx)` | Start a run (legacy) |
81
+ | `streamRun(prompt, ctx)` | Stream run events |
82
+ | `reconfigure(config)` | Reconfigure kernel |
83
+
84
+ ### Run Handle
85
+
86
+ ```typescript
87
+ const handle = kernel.createRunHandle(prompt, {
88
+ sessionId: "session-123",
89
+ agentId: "my-agent",
90
+ userId: "user-1",
91
+ });
92
+
93
+ // Properties
94
+ handle.runId; // Run ID
95
+ handle.isRunning; // Is running
96
+ handle.isCompleted; // Is completed
97
+ handle.isCancelled; // Is cancelled
98
+
99
+ // Methods
100
+ handle.onEvent(handler); // Listen to events
101
+ handle.events(); // Async iterable of events
102
+ handle.cancel(); // Cancel run
103
+
104
+ // Await completion
105
+ const result = await handle.completed;
106
+ ```
107
+
108
+ ### Event Bus
109
+
110
+ ```typescript
111
+ import { InMemoryEventBus } from '@vinhnt-sdk/core';
112
+
113
+ const bus = new InMemoryEventBus();
114
+
115
+ // Subscribe to events
116
+ const unsubscribe = bus.subscribe(eventDef, (event) => {
117
+ console.log(event.type, event.data);
118
+ });
119
+
120
+ // Publish events
121
+ bus.publish(eventDef, data, { traceId: "123", aggregateId: "run-1" });
122
+
123
+ // Stream events
124
+ for await (const event of bus.stream(eventDef, abortSignal)) {
125
+ console.log(event);
126
+ }
127
+
128
+ // Stream with replay
129
+ for await (const event of bus.streamWithReplay(eventDef, "run-1")) {
130
+ console.log(event);
131
+ }
132
+ ```
133
+
134
+ ### Circuit Breaker
135
+
136
+ ```typescript
137
+ // Built into kernel
138
+ const kernel = new AgentKernel({
139
+ model: yourModelProvider,
140
+ store: yourStore,
141
+ maxSteps: 50,
142
+ circuitBreaker: {
143
+ failureThreshold: 3,
144
+ successThreshold: 2,
145
+ resetTimeoutMs: 30_000,
146
+ maxRetries: 3,
147
+ retryBackoffMs: 1000,
148
+ maxRetryBackoffMs: 30_000,
149
+ },
150
+ });
151
+ ```
152
+
153
+ ## Dependencies
154
+
155
+ - `@vinhnt-sdk/schema` workspace:*
156
+ - `@vinhnt-sdk/security` workspace:*
157
+ - `@vinhnt-sdk/knowledge` workspace:*
158
+ - `@vinhnt-sdk/tools` workspace:*
159
+ - `zod` ^4.4.3
160
+
161
+ ## Peer Dependencies
40
162
 
41
- ## Subpath Imports
163
+ None
164
+
165
+ ## Usage Examples
166
+
167
+ ### Basic Agent Run
42
168
 
43
169
  ```typescript
44
- import { AgentKernel } from '@vinhnt-sdk/core'; // main
45
- import { defineTool } from '@vinhnt-sdk/core/tool/define'; // deep import
170
+ import { AgentKernel } from '@vinhnt-sdk/core';
171
+
172
+ const kernel = new AgentKernel({
173
+ model: yourModelProvider,
174
+ store: yourStore,
175
+ });
176
+
177
+ // Simple run
178
+ const handle = kernel.createRunHandle("Write a hello world program", {
179
+ sessionId: "session-1",
180
+ agentId: "coder",
181
+ userId: "developer",
182
+ });
183
+
184
+ const result = await handle.completed;
185
+ console.log(result.output);
186
+ ```
187
+
188
+ ### Streaming Events
189
+
190
+ ```typescript
191
+ const handle = kernel.createRunHandle("Tell me a story", {
192
+ sessionId: "session-2",
193
+ agentId: "storyteller",
194
+ userId: "user-1",
195
+ });
196
+
197
+ // Stream events
198
+ for await (const event of handle.events()) {
199
+ switch (event.type) {
200
+ case "agent.started":
201
+ console.log("Started:", event.prompt);
202
+ break;
203
+ case "model.request":
204
+ console.log("Requesting model...");
205
+ break;
206
+ case "model.response":
207
+ console.log("Model responded");
208
+ break;
209
+ case "agent.completed":
210
+ console.log("Completed:", event.status);
211
+ break;
212
+ }
213
+ }
214
+ ```
215
+
216
+ ### Cancel Run
217
+
218
+ ```typescript
219
+ const handle = kernel.createRunHandle("Long running task", ctx);
220
+
221
+ // Cancel after 5 seconds
222
+ setTimeout(() => handle.cancel(), 5000);
223
+
224
+ const result = await handle.completed;
225
+ if (result.status === "cancelled") {
226
+ console.log("Run was cancelled");
227
+ }
46
228
  ```
47
229
 
48
230
  ## License
@@ -27,6 +27,14 @@ export declare class GlobalEventBus implements EventBus {
27
27
  durable<T>(def: EventDefinition<T> & {
28
28
  durable: NonNullable<EventDefinition["durable"]>;
29
29
  }, aggregateId: string, after?: number): AsyncIterable<TypedEvent<T>>;
30
+ stream<T>(def: EventDefinition<T>, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
31
+ /**
32
+ * Stream events with durable replay + live merge.
33
+ * First yields historical events from durable storage, then yields live events.
34
+ */
35
+ streamWithReplay<T>(def: EventDefinition<T> & {
36
+ durable: NonNullable<EventDefinition["durable"]>;
37
+ }, aggregateId: string, after?: number, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
30
38
  reset(): void;
31
39
  }
32
40
  //# sourceMappingURL=global-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/global-bus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAItE,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,cAAc,GAAG,SAAS,CAAC;CAC1D;AAID,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;gBAEhB,EAAE,CAAC,EAAE,MAAM;IAKvB,KAAK,IAAI,MAAM;IAIf,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAe5C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA2BrG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAO5E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW;IAcpE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW;IAIlF,OAAO,CAAC,CAAC,EACd,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAS/B,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"global-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/global-bus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAItE,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,cAAc,GAAG,SAAS,CAAC;CAC1D;AAID,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;gBAEhB,EAAE,CAAC,EAAE,MAAM;IAKvB,KAAK,IAAI,MAAM;IAIf,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAe5C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA2BrG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAO5E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW;IAcpE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW;IAIlF,OAAO,CAAC,CAAC,EACd,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IASxB,MAAM,CAAC,CAAC,EACb,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IA0C/B;;;OAGG;IACI,gBAAgB,CAAC,CAAC,EACvB,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQ/B,KAAK,IAAI,IAAI;CAKd"}
@@ -89,6 +89,54 @@ export class GlobalEventBus {
89
89
  yield list[i];
90
90
  }
91
91
  }
92
+ async *stream(def, signal) {
93
+ const queue = [];
94
+ let resolve = null;
95
+ let done = false;
96
+ const handler = (event) => {
97
+ queue.push(event);
98
+ if (resolve) {
99
+ resolve();
100
+ resolve = null;
101
+ }
102
+ };
103
+ this.emitter.on(def.type, handler);
104
+ if (signal) {
105
+ signal.addEventListener("abort", () => {
106
+ done = true;
107
+ this.emitter.off(def.type, handler);
108
+ if (resolve) {
109
+ resolve();
110
+ resolve = null;
111
+ }
112
+ });
113
+ }
114
+ try {
115
+ while (!done) {
116
+ if (queue.length === 0) {
117
+ await new Promise((r) => {
118
+ resolve = r;
119
+ });
120
+ }
121
+ while (queue.length > 0) {
122
+ yield queue.shift();
123
+ }
124
+ }
125
+ }
126
+ finally {
127
+ this.emitter.off(def.type, handler);
128
+ }
129
+ }
130
+ /**
131
+ * Stream events with durable replay + live merge.
132
+ * First yields historical events from durable storage, then yields live events.
133
+ */
134
+ async *streamWithReplay(def, aggregateId, after, signal) {
135
+ // Phase 1: Yield historical events from durable storage
136
+ yield* this.durable(def, aggregateId, after);
137
+ // Phase 2: Yield live events from now on
138
+ yield* this.stream(def, signal);
139
+ }
92
140
  reset() {
93
141
  this.emitter.removeAllListeners();
94
142
  this.durableEvents.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"global-bus.js","sourceRoot":"","sources":["../../src/event-bus/global-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-bus.js","sourceRoot":"","sources":["../../src/event-bus/global-bus.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,20 @@ export declare class InMemoryEventBus implements EventBus {
14
14
  durable<T>(def: EventDefinition<T> & {
15
15
  durable: NonNullable<EventDefinition["durable"]>;
16
16
  }, aggregateId: string, after?: number): AsyncIterable<TypedEvent<T>>;
17
+ stream<T>(def: EventDefinition<T>, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
18
+ /**
19
+ * Stream events with durable replay + live merge.
20
+ * First yields historical events from durable storage, then yields live events.
21
+ *
22
+ * @param def - Event definition with durable config
23
+ * @param aggregateId - Aggregate ID for durable storage
24
+ * @param after - Sequence number to start replay from (default: -1)
25
+ * @param signal - Optional AbortSignal for cancellation
26
+ * @yields Historical events followed by live events
27
+ */
28
+ streamWithReplay<T>(def: EventDefinition<T> & {
29
+ durable: NonNullable<EventDefinition["durable"]>;
30
+ }, aggregateId: string, after?: number, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
17
31
  clear(): void;
18
32
  }
19
33
  //# sourceMappingURL=in-memory-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/in-memory-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgCtE,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAiD;IAEtE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuCrG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAS5E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW;IASpE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW;IAUlF,OAAO,CAAC,CAAC,EACd,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAU/B,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"in-memory-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/in-memory-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgCtE,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAiD;IAEtE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuCrG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAS5E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW;IASpE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW;IAUlF,OAAO,CAAC,CAAC,EACd,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAUxB,MAAM,CAAC,CAAC,EACb,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAwC/B;;;;;;;;;OASG;IACI,gBAAgB,CAAC,CAAC,EACvB,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQ/B,KAAK,IAAI,IAAI;CAKd"}
@@ -96,6 +96,59 @@ export class InMemoryEventBus {
96
96
  yield events[i];
97
97
  }
98
98
  }
99
+ async *stream(def, signal) {
100
+ const queue = [];
101
+ let resolve = null;
102
+ let done = false;
103
+ const unsubscribe = this.subscribe(def, (event) => {
104
+ queue.push(event);
105
+ if (resolve) {
106
+ resolve();
107
+ resolve = null;
108
+ }
109
+ });
110
+ if (signal) {
111
+ signal.addEventListener("abort", () => {
112
+ done = true;
113
+ unsubscribe();
114
+ if (resolve) {
115
+ resolve();
116
+ resolve = null;
117
+ }
118
+ });
119
+ }
120
+ try {
121
+ while (!done) {
122
+ if (queue.length === 0) {
123
+ await new Promise((r) => {
124
+ resolve = r;
125
+ });
126
+ }
127
+ while (queue.length > 0) {
128
+ yield queue.shift();
129
+ }
130
+ }
131
+ }
132
+ finally {
133
+ unsubscribe();
134
+ }
135
+ }
136
+ /**
137
+ * Stream events with durable replay + live merge.
138
+ * First yields historical events from durable storage, then yields live events.
139
+ *
140
+ * @param def - Event definition with durable config
141
+ * @param aggregateId - Aggregate ID for durable storage
142
+ * @param after - Sequence number to start replay from (default: -1)
143
+ * @param signal - Optional AbortSignal for cancellation
144
+ * @yields Historical events followed by live events
145
+ */
146
+ async *streamWithReplay(def, aggregateId, after, signal) {
147
+ // Phase 1: Yield historical events from durable storage
148
+ yield* this.durable(def, aggregateId, after);
149
+ // Phase 2: Yield live events from now on
150
+ yield* this.stream(def, signal);
151
+ }
99
152
  clear() {
100
153
  this.listeners = [];
101
154
  this.projectors.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-bus.js","sourceRoot":"","sources":["../../src/event-bus/in-memory-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-bus.js","sourceRoot":"","sources":["../../src/event-bus/in-memory-bus.ts"],"names":[],"mappings":"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"}
@@ -16,5 +16,22 @@ export interface EventBus {
16
16
  durable: NonNullable<EventDefinition["durable"]>;
17
17
  }, aggregateId: string, after?: number): AsyncIterable<TypedEvent<T>>;
18
18
  project<T>(def: EventDefinition<T>, handler: (event: TypedEvent<T>) => void): Unsubscribe;
19
+ /**
20
+ * Stream events as an async iterable. Yields events as they are published.
21
+ * @param def - Event definition to filter by
22
+ * @param signal - Optional AbortSignal to stop streaming
23
+ */
24
+ stream<T>(def: EventDefinition<T>, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
25
+ /**
26
+ * Stream events with durable replay + live merge.
27
+ * First yields historical events from durable storage, then yields live events.
28
+ * @param def - Event definition with durable config
29
+ * @param aggregateId - Aggregate ID for durable storage
30
+ * @param after - Sequence number to start replay from (default: -1)
31
+ * @param signal - Optional AbortSignal to stop streaming
32
+ */
33
+ streamWithReplay<T>(def: EventDefinition<T> & {
34
+ durable: NonNullable<EventDefinition["durable"]>;
35
+ }, aggregateId: string, after?: number, signal?: AbortSignal): AsyncIterable<TypedEvent<T>>;
19
36
  }
20
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/event-bus/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEtG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE7E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAErE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9J,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW,CAAC;CAC3F"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/event-bus/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEtG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE7E,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAErE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9J,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW,CAAC;IAE1F;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvF;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,EAChB,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,EAC9E,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC"}