@agentxjs/core 1.9.1-dev
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 +31 -0
- package/src/agent/AgentStateMachine.ts +151 -0
- package/src/agent/README.md +296 -0
- package/src/agent/__tests__/AgentStateMachine.test.ts +346 -0
- package/src/agent/__tests__/createAgent.test.ts +728 -0
- package/src/agent/__tests__/engine/internal/messageAssemblerProcessor.test.ts +567 -0
- package/src/agent/__tests__/engine/internal/stateEventProcessor.test.ts +315 -0
- package/src/agent/__tests__/engine/internal/turnTrackerProcessor.test.ts +340 -0
- package/src/agent/__tests__/engine/mealy/Mealy.test.ts +370 -0
- package/src/agent/__tests__/engine/mealy/Store.test.ts +123 -0
- package/src/agent/__tests__/engine/mealy/combinators.test.ts +322 -0
- package/src/agent/createAgent.ts +467 -0
- package/src/agent/engine/AgentProcessor.ts +106 -0
- package/src/agent/engine/MealyMachine.ts +184 -0
- package/src/agent/engine/internal/index.ts +35 -0
- package/src/agent/engine/internal/messageAssemblerProcessor.ts +550 -0
- package/src/agent/engine/internal/stateEventProcessor.ts +313 -0
- package/src/agent/engine/internal/turnTrackerProcessor.ts +239 -0
- package/src/agent/engine/mealy/Mealy.ts +308 -0
- package/src/agent/engine/mealy/Processor.ts +70 -0
- package/src/agent/engine/mealy/Sink.ts +56 -0
- package/src/agent/engine/mealy/Source.ts +51 -0
- package/src/agent/engine/mealy/Store.ts +98 -0
- package/src/agent/engine/mealy/combinators.ts +176 -0
- package/src/agent/engine/mealy/index.ts +45 -0
- package/src/agent/index.ts +106 -0
- package/src/agent/types/engine.ts +395 -0
- package/src/agent/types/event.ts +478 -0
- package/src/agent/types/index.ts +197 -0
- package/src/agent/types/message.ts +387 -0
- package/src/common/index.ts +8 -0
- package/src/common/logger/ConsoleLogger.ts +137 -0
- package/src/common/logger/LoggerFactoryImpl.ts +123 -0
- package/src/common/logger/index.ts +26 -0
- package/src/common/logger/types.ts +98 -0
- package/src/container/Container.ts +185 -0
- package/src/container/index.ts +44 -0
- package/src/container/types.ts +71 -0
- package/src/driver/index.ts +42 -0
- package/src/driver/types.ts +363 -0
- package/src/event/EventBus.ts +260 -0
- package/src/event/README.md +237 -0
- package/src/event/__tests__/EventBus.test.ts +251 -0
- package/src/event/index.ts +46 -0
- package/src/event/types/agent.ts +512 -0
- package/src/event/types/base.ts +241 -0
- package/src/event/types/bus.ts +429 -0
- package/src/event/types/command.ts +749 -0
- package/src/event/types/container.ts +471 -0
- package/src/event/types/driver.ts +452 -0
- package/src/event/types/index.ts +26 -0
- package/src/event/types/session.ts +314 -0
- package/src/image/Image.ts +203 -0
- package/src/image/index.ts +36 -0
- package/src/image/types.ts +77 -0
- package/src/index.ts +20 -0
- package/src/mq/OffsetGenerator.ts +48 -0
- package/src/mq/README.md +166 -0
- package/src/mq/__tests__/OffsetGenerator.test.ts +121 -0
- package/src/mq/index.ts +18 -0
- package/src/mq/types.ts +172 -0
- package/src/network/RpcClient.ts +455 -0
- package/src/network/index.ts +76 -0
- package/src/network/jsonrpc.ts +336 -0
- package/src/network/protocol.ts +90 -0
- package/src/network/types.ts +284 -0
- package/src/persistence/index.ts +27 -0
- package/src/persistence/types.ts +226 -0
- package/src/runtime/AgentXRuntime.ts +501 -0
- package/src/runtime/index.ts +56 -0
- package/src/runtime/types.ts +236 -0
- package/src/session/Session.ts +71 -0
- package/src/session/index.ts +25 -0
- package/src/session/types.ts +77 -0
- package/src/workspace/index.ts +27 -0
- package/src/workspace/types.ts +131 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Events - External world events (LLM API, Network)
|
|
3
|
+
*
|
|
4
|
+
* DriveableEvent, ConnectionEvent, StopReason, ErrorEvent
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { SystemEvent } from "./base";
|
|
8
|
+
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Stop Reason
|
|
11
|
+
// ============================================================================
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Reason why the LLM stopped generating
|
|
15
|
+
*
|
|
16
|
+
* Based on common stop reasons across multiple LLM providers:
|
|
17
|
+
* - Anthropic Claude: end_turn, max_tokens, tool_use, stop_sequence
|
|
18
|
+
* - OpenAI: stop, length, tool_calls, content_filter
|
|
19
|
+
* - Vercel AI SDK: stop, length, tool-calls, content-filter, error, other
|
|
20
|
+
*/
|
|
21
|
+
export type StopReason =
|
|
22
|
+
/**
|
|
23
|
+
* Natural completion - model decided to stop
|
|
24
|
+
*/
|
|
25
|
+
| "end_turn"
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Reached maximum token limit
|
|
29
|
+
*/
|
|
30
|
+
| "max_tokens"
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Model requested tool usage
|
|
34
|
+
*/
|
|
35
|
+
| "tool_use"
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Encountered a custom stop sequence
|
|
39
|
+
*/
|
|
40
|
+
| "stop_sequence"
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Content filter triggered
|
|
44
|
+
*/
|
|
45
|
+
| "content_filter"
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Error occurred during generation
|
|
49
|
+
*/
|
|
50
|
+
| "error"
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Other/unknown reason
|
|
54
|
+
*/
|
|
55
|
+
| "other";
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Type guard to check if a string is a valid StopReason
|
|
59
|
+
*/
|
|
60
|
+
export function isStopReason(value: string): value is StopReason {
|
|
61
|
+
return [
|
|
62
|
+
"end_turn",
|
|
63
|
+
"max_tokens",
|
|
64
|
+
"tool_use",
|
|
65
|
+
"stop_sequence",
|
|
66
|
+
"content_filter",
|
|
67
|
+
"error",
|
|
68
|
+
"other",
|
|
69
|
+
].includes(value);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// ============================================================================
|
|
73
|
+
// Driveable Events (LLM Stream Events)
|
|
74
|
+
// ============================================================================
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Base interface for all LLM stream events (DriveableEvent)
|
|
78
|
+
*
|
|
79
|
+
* All DriveableEvents have:
|
|
80
|
+
* - source: "driver" (from LLM Driver)
|
|
81
|
+
* - category: "stream" (streaming output)
|
|
82
|
+
* - intent: "notification" (informational, no action needed)
|
|
83
|
+
* - requestId: correlation with the original request
|
|
84
|
+
* - context: agent/image/session scope (inherited from SystemEvent)
|
|
85
|
+
*/
|
|
86
|
+
interface BaseStreamEvent<T extends string, D = unknown> extends SystemEvent<
|
|
87
|
+
T,
|
|
88
|
+
D,
|
|
89
|
+
"driver",
|
|
90
|
+
"stream",
|
|
91
|
+
"notification"
|
|
92
|
+
> {
|
|
93
|
+
/**
|
|
94
|
+
* Content block index (for multi-block responses)
|
|
95
|
+
*/
|
|
96
|
+
index?: number;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Request ID for correlating events with the original message_send_request
|
|
100
|
+
*/
|
|
101
|
+
requestId?: string;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Message Lifecycle Events
|
|
105
|
+
/**
|
|
106
|
+
* MessageStartEvent - Emitted when streaming message begins
|
|
107
|
+
*/
|
|
108
|
+
export interface MessageStartEvent extends BaseStreamEvent<
|
|
109
|
+
"message_start",
|
|
110
|
+
{
|
|
111
|
+
message: {
|
|
112
|
+
id: string;
|
|
113
|
+
model: string;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
> {}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* MessageDeltaEvent - Emitted with message-level updates
|
|
120
|
+
*/
|
|
121
|
+
export interface MessageDeltaEvent extends BaseStreamEvent<
|
|
122
|
+
"message_delta",
|
|
123
|
+
{
|
|
124
|
+
usage?: {
|
|
125
|
+
inputTokens: number;
|
|
126
|
+
outputTokens: number;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
> {}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* MessageStopEvent - Emitted when streaming message completes
|
|
133
|
+
*/
|
|
134
|
+
export interface MessageStopEvent extends BaseStreamEvent<
|
|
135
|
+
"message_stop",
|
|
136
|
+
{
|
|
137
|
+
stopReason?: StopReason;
|
|
138
|
+
stopSequence?: string;
|
|
139
|
+
}
|
|
140
|
+
> {}
|
|
141
|
+
|
|
142
|
+
// Text Content Block Events
|
|
143
|
+
/**
|
|
144
|
+
* TextContentBlockStartEvent - Text block started
|
|
145
|
+
*/
|
|
146
|
+
export interface TextContentBlockStartEvent extends BaseStreamEvent<
|
|
147
|
+
"text_content_block_start",
|
|
148
|
+
Record<string, never>
|
|
149
|
+
> {
|
|
150
|
+
index: number;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* TextDeltaEvent - Incremental text output
|
|
155
|
+
*/
|
|
156
|
+
export interface TextDeltaEvent extends BaseStreamEvent<
|
|
157
|
+
"text_delta",
|
|
158
|
+
{
|
|
159
|
+
text: string;
|
|
160
|
+
}
|
|
161
|
+
> {}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* TextContentBlockStopEvent - Text block completed
|
|
165
|
+
*/
|
|
166
|
+
export interface TextContentBlockStopEvent extends BaseStreamEvent<
|
|
167
|
+
"text_content_block_stop",
|
|
168
|
+
Record<string, never>
|
|
169
|
+
> {
|
|
170
|
+
index: number;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Tool Use Content Block Events
|
|
174
|
+
/**
|
|
175
|
+
* ToolUseContentBlockStartEvent - Tool use block started
|
|
176
|
+
*/
|
|
177
|
+
export interface ToolUseContentBlockStartEvent extends BaseStreamEvent<
|
|
178
|
+
"tool_use_content_block_start",
|
|
179
|
+
{
|
|
180
|
+
id: string;
|
|
181
|
+
name: string;
|
|
182
|
+
}
|
|
183
|
+
> {
|
|
184
|
+
index: number;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* InputJsonDeltaEvent - Incremental tool input JSON
|
|
189
|
+
*/
|
|
190
|
+
export interface InputJsonDeltaEvent extends BaseStreamEvent<
|
|
191
|
+
"input_json_delta",
|
|
192
|
+
{
|
|
193
|
+
partialJson: string;
|
|
194
|
+
}
|
|
195
|
+
> {
|
|
196
|
+
index: number;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* ToolUseContentBlockStopEvent - Tool use block completed
|
|
201
|
+
*/
|
|
202
|
+
export interface ToolUseContentBlockStopEvent extends BaseStreamEvent<
|
|
203
|
+
"tool_use_content_block_stop",
|
|
204
|
+
Record<string, never>
|
|
205
|
+
> {
|
|
206
|
+
index: number;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Tool Execution Events
|
|
210
|
+
/**
|
|
211
|
+
* ToolCallEvent - Tool call ready for execution
|
|
212
|
+
*/
|
|
213
|
+
export interface ToolCallEvent extends BaseStreamEvent<
|
|
214
|
+
"tool_call",
|
|
215
|
+
{
|
|
216
|
+
id: string;
|
|
217
|
+
name: string;
|
|
218
|
+
input: Record<string, unknown>;
|
|
219
|
+
}
|
|
220
|
+
> {}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* ToolResultEvent - Tool execution result
|
|
224
|
+
*/
|
|
225
|
+
export interface ToolResultEvent extends BaseStreamEvent<
|
|
226
|
+
"tool_result",
|
|
227
|
+
{
|
|
228
|
+
toolUseId: string;
|
|
229
|
+
result: unknown;
|
|
230
|
+
isError?: boolean;
|
|
231
|
+
}
|
|
232
|
+
> {}
|
|
233
|
+
|
|
234
|
+
// Interrupt Event
|
|
235
|
+
/**
|
|
236
|
+
* InterruptedEvent - Stream interrupted
|
|
237
|
+
*/
|
|
238
|
+
export interface InterruptedEvent extends BaseStreamEvent<
|
|
239
|
+
"interrupted",
|
|
240
|
+
{
|
|
241
|
+
reason: "user_interrupt" | "timeout" | "error" | "system";
|
|
242
|
+
}
|
|
243
|
+
> {}
|
|
244
|
+
|
|
245
|
+
// Error Event (Environment)
|
|
246
|
+
/**
|
|
247
|
+
* ErrorReceivedEvent - Error received from environment (e.g., Claude API error)
|
|
248
|
+
*
|
|
249
|
+
* This event drives the MealyMachine to produce:
|
|
250
|
+
* - error_occurred (StateEvent) -> state transitions to "error"
|
|
251
|
+
* - error_message (MessageEvent) -> displayed in chat
|
|
252
|
+
*/
|
|
253
|
+
export interface ErrorReceivedEvent extends BaseStreamEvent<
|
|
254
|
+
"error_received",
|
|
255
|
+
{
|
|
256
|
+
/** Error message (human-readable) */
|
|
257
|
+
message: string;
|
|
258
|
+
/** Error code (e.g., "rate_limit_error", "api_error", "overloaded_error") */
|
|
259
|
+
errorCode?: string;
|
|
260
|
+
}
|
|
261
|
+
> {}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* DriveableEvent - All events that can drive Agent
|
|
265
|
+
*/
|
|
266
|
+
export type DriveableEvent =
|
|
267
|
+
// Message lifecycle
|
|
268
|
+
| MessageStartEvent
|
|
269
|
+
| MessageDeltaEvent
|
|
270
|
+
| MessageStopEvent
|
|
271
|
+
// Text content block
|
|
272
|
+
| TextContentBlockStartEvent
|
|
273
|
+
| TextDeltaEvent
|
|
274
|
+
| TextContentBlockStopEvent
|
|
275
|
+
// Tool use content block
|
|
276
|
+
| ToolUseContentBlockStartEvent
|
|
277
|
+
| InputJsonDeltaEvent
|
|
278
|
+
| ToolUseContentBlockStopEvent
|
|
279
|
+
// Tool execution
|
|
280
|
+
| ToolCallEvent
|
|
281
|
+
| ToolResultEvent
|
|
282
|
+
// Interrupt
|
|
283
|
+
| InterruptedEvent
|
|
284
|
+
// Error
|
|
285
|
+
| ErrorReceivedEvent;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* DriveableEventType - String literal union of all driveable event types
|
|
289
|
+
*/
|
|
290
|
+
export type DriveableEventType = DriveableEvent["type"];
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Type guard: is this a DriveableEvent?
|
|
294
|
+
*/
|
|
295
|
+
export function isDriveableEvent(event: {
|
|
296
|
+
source?: string;
|
|
297
|
+
category?: string;
|
|
298
|
+
}): event is DriveableEvent {
|
|
299
|
+
return event.source === "driver" && event.category === "stream";
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// ============================================================================
|
|
303
|
+
// Connection Events (Network Status)
|
|
304
|
+
// ============================================================================
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Base interface for all connection events
|
|
308
|
+
*/
|
|
309
|
+
interface BaseConnectionEvent<T extends string, D = unknown> extends SystemEvent<
|
|
310
|
+
T,
|
|
311
|
+
D,
|
|
312
|
+
"driver",
|
|
313
|
+
"connection",
|
|
314
|
+
"notification"
|
|
315
|
+
> {}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* ConnectedEvent - Connection established
|
|
319
|
+
*/
|
|
320
|
+
export interface ConnectedEvent extends BaseConnectionEvent<
|
|
321
|
+
"connected",
|
|
322
|
+
{
|
|
323
|
+
url?: string;
|
|
324
|
+
reconnectAttempt?: number;
|
|
325
|
+
}
|
|
326
|
+
> {}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* DisconnectedEvent - Connection lost
|
|
330
|
+
*/
|
|
331
|
+
export interface DisconnectedEvent extends BaseConnectionEvent<
|
|
332
|
+
"disconnected",
|
|
333
|
+
{
|
|
334
|
+
reason?: string;
|
|
335
|
+
code?: number;
|
|
336
|
+
willReconnect?: boolean;
|
|
337
|
+
}
|
|
338
|
+
> {}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* ReconnectingEvent - Attempting to reconnect
|
|
342
|
+
*/
|
|
343
|
+
export interface ReconnectingEvent extends BaseConnectionEvent<
|
|
344
|
+
"reconnecting",
|
|
345
|
+
{
|
|
346
|
+
attempt: number;
|
|
347
|
+
maxAttempts?: number;
|
|
348
|
+
delayMs: number;
|
|
349
|
+
}
|
|
350
|
+
> {}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* ConnectionEvent - All network status events
|
|
354
|
+
*/
|
|
355
|
+
export type ConnectionEvent = ConnectedEvent | DisconnectedEvent | ReconnectingEvent;
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* ConnectionEventType - String literal union
|
|
359
|
+
*/
|
|
360
|
+
export type ConnectionEventType = ConnectionEvent["type"];
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Type guard: is this a ConnectionEvent?
|
|
364
|
+
*/
|
|
365
|
+
export function isConnectionEvent(event: {
|
|
366
|
+
source?: string;
|
|
367
|
+
category?: string;
|
|
368
|
+
}): event is ConnectionEvent {
|
|
369
|
+
return event.source === "driver" && event.category === "connection";
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* EnvironmentEvent - Union of all environment events
|
|
374
|
+
*/
|
|
375
|
+
export type EnvironmentEvent = DriveableEvent | ConnectionEvent;
|
|
376
|
+
|
|
377
|
+
// ============================================================================
|
|
378
|
+
// Error Events (System-wide error notifications)
|
|
379
|
+
// ============================================================================
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* SystemError - Generic error event
|
|
383
|
+
*
|
|
384
|
+
* Used for all errors until we create specific error types.
|
|
385
|
+
* Can originate from any source (runtime, agent, container, etc.)
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* ```typescript
|
|
389
|
+
* const error: SystemError = {
|
|
390
|
+
* type: "system_error",
|
|
391
|
+
* timestamp: Date.now(),
|
|
392
|
+
* source: "container",
|
|
393
|
+
* category: "error",
|
|
394
|
+
* intent: "notification",
|
|
395
|
+
* data: {
|
|
396
|
+
* message: "Container not found: default",
|
|
397
|
+
* requestId: "req_123",
|
|
398
|
+
* severity: "error",
|
|
399
|
+
* },
|
|
400
|
+
* context: { containerId: "default" }
|
|
401
|
+
* };
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
export interface SystemError extends SystemEvent<
|
|
405
|
+
"system_error",
|
|
406
|
+
{
|
|
407
|
+
/**
|
|
408
|
+
* Error message (human-readable)
|
|
409
|
+
*/
|
|
410
|
+
message: string;
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Associated request ID (if error is related to a request)
|
|
414
|
+
*/
|
|
415
|
+
requestId?: string;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Error severity
|
|
419
|
+
* - info: Informational, no action needed
|
|
420
|
+
* - warn: Warning, operation succeeded but with issues
|
|
421
|
+
* - error: Error, operation failed
|
|
422
|
+
* - fatal: Fatal error, system unstable
|
|
423
|
+
*/
|
|
424
|
+
severity?: "info" | "warn" | "error" | "fatal";
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Additional error details (stack trace, error code, etc.)
|
|
428
|
+
*/
|
|
429
|
+
details?: unknown;
|
|
430
|
+
},
|
|
431
|
+
"agent" | "container" | "driver" | "session" | "sandbox" | "command",
|
|
432
|
+
"error",
|
|
433
|
+
"notification"
|
|
434
|
+
> {}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Error event map - will grow as we add specific error types
|
|
438
|
+
*/
|
|
439
|
+
export interface ErrorEventMap {
|
|
440
|
+
system_error: SystemError;
|
|
441
|
+
// Future: container_not_found_error, agent_creation_error, llm_api_error, etc.
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Error event types
|
|
446
|
+
*/
|
|
447
|
+
export type ErrorEventType = keyof ErrorEventMap;
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Union of all error events
|
|
451
|
+
*/
|
|
452
|
+
export type ErrorEvent = ErrorEventMap[ErrorEventType];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Types - Re-export all event type definitions
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports all event types from the split files for convenience.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Base types
|
|
8
|
+
export * from "./base";
|
|
9
|
+
|
|
10
|
+
// Bus interfaces (EventBus, EventProducer, EventConsumer)
|
|
11
|
+
export * from "./bus";
|
|
12
|
+
|
|
13
|
+
// Driver events (DriveableEvent, ConnectionEvent, StopReason, ErrorEvent)
|
|
14
|
+
export * from "./driver";
|
|
15
|
+
|
|
16
|
+
// Agent events (stream, state, message, turn)
|
|
17
|
+
export * from "./agent";
|
|
18
|
+
|
|
19
|
+
// Session events (lifecycle, persist, action)
|
|
20
|
+
export * from "./session";
|
|
21
|
+
|
|
22
|
+
// Container events (lifecycle, sandbox)
|
|
23
|
+
export * from "./container";
|
|
24
|
+
|
|
25
|
+
// Command events (request/response)
|
|
26
|
+
export * from "./command";
|