@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.
Files changed (77) hide show
  1. package/package.json +31 -0
  2. package/src/agent/AgentStateMachine.ts +151 -0
  3. package/src/agent/README.md +296 -0
  4. package/src/agent/__tests__/AgentStateMachine.test.ts +346 -0
  5. package/src/agent/__tests__/createAgent.test.ts +728 -0
  6. package/src/agent/__tests__/engine/internal/messageAssemblerProcessor.test.ts +567 -0
  7. package/src/agent/__tests__/engine/internal/stateEventProcessor.test.ts +315 -0
  8. package/src/agent/__tests__/engine/internal/turnTrackerProcessor.test.ts +340 -0
  9. package/src/agent/__tests__/engine/mealy/Mealy.test.ts +370 -0
  10. package/src/agent/__tests__/engine/mealy/Store.test.ts +123 -0
  11. package/src/agent/__tests__/engine/mealy/combinators.test.ts +322 -0
  12. package/src/agent/createAgent.ts +467 -0
  13. package/src/agent/engine/AgentProcessor.ts +106 -0
  14. package/src/agent/engine/MealyMachine.ts +184 -0
  15. package/src/agent/engine/internal/index.ts +35 -0
  16. package/src/agent/engine/internal/messageAssemblerProcessor.ts +550 -0
  17. package/src/agent/engine/internal/stateEventProcessor.ts +313 -0
  18. package/src/agent/engine/internal/turnTrackerProcessor.ts +239 -0
  19. package/src/agent/engine/mealy/Mealy.ts +308 -0
  20. package/src/agent/engine/mealy/Processor.ts +70 -0
  21. package/src/agent/engine/mealy/Sink.ts +56 -0
  22. package/src/agent/engine/mealy/Source.ts +51 -0
  23. package/src/agent/engine/mealy/Store.ts +98 -0
  24. package/src/agent/engine/mealy/combinators.ts +176 -0
  25. package/src/agent/engine/mealy/index.ts +45 -0
  26. package/src/agent/index.ts +106 -0
  27. package/src/agent/types/engine.ts +395 -0
  28. package/src/agent/types/event.ts +478 -0
  29. package/src/agent/types/index.ts +197 -0
  30. package/src/agent/types/message.ts +387 -0
  31. package/src/common/index.ts +8 -0
  32. package/src/common/logger/ConsoleLogger.ts +137 -0
  33. package/src/common/logger/LoggerFactoryImpl.ts +123 -0
  34. package/src/common/logger/index.ts +26 -0
  35. package/src/common/logger/types.ts +98 -0
  36. package/src/container/Container.ts +185 -0
  37. package/src/container/index.ts +44 -0
  38. package/src/container/types.ts +71 -0
  39. package/src/driver/index.ts +42 -0
  40. package/src/driver/types.ts +363 -0
  41. package/src/event/EventBus.ts +260 -0
  42. package/src/event/README.md +237 -0
  43. package/src/event/__tests__/EventBus.test.ts +251 -0
  44. package/src/event/index.ts +46 -0
  45. package/src/event/types/agent.ts +512 -0
  46. package/src/event/types/base.ts +241 -0
  47. package/src/event/types/bus.ts +429 -0
  48. package/src/event/types/command.ts +749 -0
  49. package/src/event/types/container.ts +471 -0
  50. package/src/event/types/driver.ts +452 -0
  51. package/src/event/types/index.ts +26 -0
  52. package/src/event/types/session.ts +314 -0
  53. package/src/image/Image.ts +203 -0
  54. package/src/image/index.ts +36 -0
  55. package/src/image/types.ts +77 -0
  56. package/src/index.ts +20 -0
  57. package/src/mq/OffsetGenerator.ts +48 -0
  58. package/src/mq/README.md +166 -0
  59. package/src/mq/__tests__/OffsetGenerator.test.ts +121 -0
  60. package/src/mq/index.ts +18 -0
  61. package/src/mq/types.ts +172 -0
  62. package/src/network/RpcClient.ts +455 -0
  63. package/src/network/index.ts +76 -0
  64. package/src/network/jsonrpc.ts +336 -0
  65. package/src/network/protocol.ts +90 -0
  66. package/src/network/types.ts +284 -0
  67. package/src/persistence/index.ts +27 -0
  68. package/src/persistence/types.ts +226 -0
  69. package/src/runtime/AgentXRuntime.ts +501 -0
  70. package/src/runtime/index.ts +56 -0
  71. package/src/runtime/types.ts +236 -0
  72. package/src/session/Session.ts +71 -0
  73. package/src/session/index.ts +25 -0
  74. package/src/session/types.ts +77 -0
  75. package/src/workspace/index.ts +27 -0
  76. package/src/workspace/types.ts +131 -0
  77. package/tsconfig.json +10 -0
@@ -0,0 +1,478 @@
1
+ /**
2
+ * Event Types - Stream, State, Message, and Turn Events
3
+ *
4
+ * This file defines all event types for the AgentEngine:
5
+ * - Base EngineEvent type
6
+ * - Stream Events: message_start, text_delta, tool_use_*, etc.
7
+ * - State Events: conversation_*, tool_*, error_*
8
+ * - Message Events: user_message, assistant_message, etc.
9
+ * - Turn Events: turn_request, turn_response
10
+ * - AgentOutput: Union of all output events
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+
15
+ import type {
16
+ UserMessage,
17
+ AssistantMessage,
18
+ ToolCallMessage,
19
+ ToolResultMessage,
20
+ ErrorMessage,
21
+ TokenUsage,
22
+ } from "./message";
23
+
24
+ // =============================================================================
25
+ // Base Types
26
+ // =============================================================================
27
+
28
+ /**
29
+ * EngineEvent - Lightweight event base for AgentEngine domain
30
+ *
31
+ * EngineEvent is the simplified event structure used inside AgentEngine.
32
+ * It only contains: type, timestamp, data
33
+ *
34
+ * This is a self-contained type without external dependencies.
35
+ * All specific event types (StreamEvent, StateEvent, etc.) extend this base.
36
+ */
37
+ export interface EngineEvent<T extends string = string, D = unknown> {
38
+ /**
39
+ * Event type identifier (e.g., "text_delta", "assistant_message")
40
+ */
41
+ readonly type: T;
42
+
43
+ /**
44
+ * Event timestamp (Unix milliseconds)
45
+ */
46
+ readonly timestamp: number;
47
+
48
+ /**
49
+ * Event payload data
50
+ */
51
+ readonly data: D;
52
+ }
53
+
54
+ /**
55
+ * @deprecated Use EngineEvent instead
56
+ */
57
+ export type AgentEvent<T extends string = string, D = unknown> = EngineEvent<T, D>;
58
+
59
+ // =============================================================================
60
+ // Agent State
61
+ // =============================================================================
62
+
63
+ /**
64
+ * AgentState
65
+ *
66
+ * Agent conversation states for fine-grained monitoring.
67
+ *
68
+ * State transitions:
69
+ * ```
70
+ * idle -> thinking -> responding -> idle
71
+ * |
72
+ * planning_tool -> awaiting_tool_result
73
+ * |
74
+ * thinking -> responding -> idle
75
+ *
76
+ * Any state can transition to error:
77
+ * thinking/responding/planning_tool/awaiting_tool_result -> error -> idle
78
+ * ```
79
+ */
80
+ export type AgentState =
81
+ | "idle" // Waiting for user input
82
+ | "thinking" // LLM is thinking
83
+ | "responding" // LLM is generating response
84
+ | "planning_tool" // Generating tool call parameters
85
+ | "awaiting_tool_result" // Waiting for tool execution result
86
+ | "error"; // Error occurred during processing
87
+
88
+ // =============================================================================
89
+ // Agent Error
90
+ // =============================================================================
91
+
92
+ /**
93
+ * Error category
94
+ */
95
+ export type AgentErrorCategory =
96
+ | "network" // Network/API errors
97
+ | "validation" // Input validation errors
98
+ | "system" // Internal system errors
99
+ | "business"; // Business logic errors
100
+
101
+ /**
102
+ * AgentError - Standardized error structure
103
+ */
104
+ export interface AgentError {
105
+ /**
106
+ * Error category
107
+ */
108
+ category: AgentErrorCategory;
109
+
110
+ /**
111
+ * Error code (e.g., "NETWORK_TIMEOUT", "INVALID_INPUT")
112
+ */
113
+ code: string;
114
+
115
+ /**
116
+ * Human-readable error message
117
+ */
118
+ message: string;
119
+
120
+ /**
121
+ * Whether the error is recoverable
122
+ */
123
+ recoverable: boolean;
124
+
125
+ /**
126
+ * Original error (if any)
127
+ */
128
+ cause?: Error;
129
+
130
+ /**
131
+ * Additional context
132
+ */
133
+ context?: Record<string, unknown>;
134
+ }
135
+
136
+ // =============================================================================
137
+ // Stream Events
138
+ // =============================================================================
139
+
140
+ /**
141
+ * Stop reason for message completion
142
+ */
143
+ export type StopReason = "end_turn" | "max_tokens" | "stop_sequence" | "tool_use";
144
+
145
+ // --- Stream Event Data Types ---
146
+
147
+ export interface MessageStartData {
148
+ messageId: string;
149
+ model: string;
150
+ }
151
+
152
+ export interface MessageDeltaData {
153
+ usage?: {
154
+ inputTokens: number;
155
+ outputTokens: number;
156
+ };
157
+ }
158
+
159
+ export interface MessageStopData {
160
+ stopReason?: StopReason;
161
+ }
162
+
163
+ export interface TextDeltaData {
164
+ text: string;
165
+ }
166
+
167
+ export interface ToolUseStartData {
168
+ toolCallId: string;
169
+ toolName: string;
170
+ }
171
+
172
+ export interface InputJsonDeltaData {
173
+ partialJson: string;
174
+ }
175
+
176
+ export interface ToolUseStopData {
177
+ toolCallId: string;
178
+ toolName: string;
179
+ input: Record<string, unknown>;
180
+ }
181
+
182
+ export interface ToolResultData {
183
+ toolCallId: string;
184
+ result: unknown;
185
+ isError?: boolean;
186
+ }
187
+
188
+ export interface ErrorReceivedData {
189
+ message: string;
190
+ errorCode?: string;
191
+ }
192
+
193
+ // --- Stream Event Types ---
194
+
195
+ export type MessageStartEvent = EngineEvent<"message_start", MessageStartData>;
196
+ export type MessageDeltaEvent = EngineEvent<"message_delta", MessageDeltaData>;
197
+ export type MessageStopEvent = EngineEvent<"message_stop", MessageStopData>;
198
+ export type TextDeltaEvent = EngineEvent<"text_delta", TextDeltaData>;
199
+ export type ToolUseStartEvent = EngineEvent<"tool_use_start", ToolUseStartData>;
200
+ export type InputJsonDeltaEvent = EngineEvent<"input_json_delta", InputJsonDeltaData>;
201
+ export type ToolUseStopEvent = EngineEvent<"tool_use_stop", ToolUseStopData>;
202
+ export type ToolResultEvent = EngineEvent<"tool_result", ToolResultData>;
203
+ export type ErrorReceivedEvent = EngineEvent<"error_received", ErrorReceivedData>;
204
+
205
+ /**
206
+ * StreamEvent - All lightweight stream events
207
+ */
208
+ export type StreamEvent =
209
+ | MessageStartEvent
210
+ | MessageDeltaEvent
211
+ | MessageStopEvent
212
+ | TextDeltaEvent
213
+ | ToolUseStartEvent
214
+ | InputJsonDeltaEvent
215
+ | ToolUseStopEvent
216
+ | ToolResultEvent
217
+ | ErrorReceivedEvent;
218
+
219
+ /**
220
+ * StreamEventType - String literal union
221
+ */
222
+ export type StreamEventType = StreamEvent["type"];
223
+
224
+ // =============================================================================
225
+ // State Events
226
+ // =============================================================================
227
+
228
+ // --- State Event Data Types ---
229
+
230
+ export interface ConversationQueuedData {
231
+ messageId: string;
232
+ }
233
+
234
+ export interface ConversationStartData {
235
+ messageId: string;
236
+ }
237
+
238
+ export interface ConversationThinkingData {
239
+ // Empty
240
+ }
241
+
242
+ export interface ConversationRespondingData {
243
+ // Empty
244
+ }
245
+
246
+ export interface ConversationEndData {
247
+ reason: "completed" | "interrupted" | "error";
248
+ }
249
+
250
+ export interface ConversationInterruptedData {
251
+ reason: string;
252
+ }
253
+
254
+ export interface ToolPlannedData {
255
+ toolId: string;
256
+ toolName: string;
257
+ }
258
+
259
+ export interface ToolExecutingData {
260
+ toolId: string;
261
+ toolName: string;
262
+ input: Record<string, unknown>;
263
+ }
264
+
265
+ export interface ToolCompletedData {
266
+ toolId: string;
267
+ toolName: string;
268
+ result: unknown;
269
+ }
270
+
271
+ export interface ToolFailedData {
272
+ toolId: string;
273
+ toolName: string;
274
+ error: string;
275
+ }
276
+
277
+ export interface ErrorOccurredData {
278
+ code: string;
279
+ message: string;
280
+ recoverable: boolean;
281
+ category?: string;
282
+ }
283
+
284
+ /**
285
+ * StateEvent - Base type for state events
286
+ * @deprecated Use specific event types instead
287
+ */
288
+ export interface StateEvent<T extends string = string, D = unknown> extends EngineEvent<T, D> {}
289
+
290
+ // --- State Event Types ---
291
+
292
+ export type ConversationQueuedEvent = EngineEvent<"conversation_queued", ConversationQueuedData>;
293
+ export type ConversationStartEvent = EngineEvent<"conversation_start", ConversationStartData>;
294
+ export type ConversationThinkingEvent = EngineEvent<
295
+ "conversation_thinking",
296
+ ConversationThinkingData
297
+ >;
298
+ export type ConversationRespondingEvent = EngineEvent<
299
+ "conversation_responding",
300
+ ConversationRespondingData
301
+ >;
302
+ export type ConversationEndEvent = EngineEvent<"conversation_end", ConversationEndData>;
303
+ export type ConversationInterruptedEvent = EngineEvent<
304
+ "conversation_interrupted",
305
+ ConversationInterruptedData
306
+ >;
307
+ export type ToolPlannedEvent = EngineEvent<"tool_planned", ToolPlannedData>;
308
+ export type ToolExecutingEvent = EngineEvent<"tool_executing", ToolExecutingData>;
309
+ export type ToolCompletedEvent = EngineEvent<"tool_completed", ToolCompletedData>;
310
+ export type ToolFailedEvent = EngineEvent<"tool_failed", ToolFailedData>;
311
+ export type ErrorOccurredEvent = EngineEvent<"error_occurred", ErrorOccurredData>;
312
+
313
+ /**
314
+ * Alias for ErrorOccurredEvent (legacy compatibility)
315
+ */
316
+ export type AgentErrorOccurredEvent = ErrorOccurredEvent;
317
+
318
+ /**
319
+ * AgentStateEvent - All lightweight state events
320
+ */
321
+ export type AgentStateEvent =
322
+ // Conversation
323
+ | ConversationQueuedEvent
324
+ | ConversationStartEvent
325
+ | ConversationThinkingEvent
326
+ | ConversationRespondingEvent
327
+ | ConversationEndEvent
328
+ | ConversationInterruptedEvent
329
+ // Tool
330
+ | ToolPlannedEvent
331
+ | ToolExecutingEvent
332
+ | ToolCompletedEvent
333
+ | ToolFailedEvent
334
+ // Error
335
+ | ErrorOccurredEvent;
336
+
337
+ /**
338
+ * Type guard: is this a state event?
339
+ */
340
+ export function isStateEvent(event: EngineEvent): event is AgentStateEvent {
341
+ const stateTypes = [
342
+ "conversation_queued",
343
+ "conversation_start",
344
+ "conversation_thinking",
345
+ "conversation_responding",
346
+ "conversation_end",
347
+ "conversation_interrupted",
348
+ "tool_planned",
349
+ "tool_executing",
350
+ "tool_completed",
351
+ "tool_failed",
352
+ "error_occurred",
353
+ ];
354
+ return stateTypes.includes(event.type);
355
+ }
356
+
357
+ // =============================================================================
358
+ // Message Events
359
+ // =============================================================================
360
+
361
+ /**
362
+ * MessageEvent - Base type for message events
363
+ * @deprecated Use specific event types instead
364
+ */
365
+ export interface MessageEvent<T extends string = string, D = unknown> extends EngineEvent<T, D> {}
366
+
367
+ // --- Message Event Types ---
368
+
369
+ export type UserMessageEvent = EngineEvent<"user_message", UserMessage>;
370
+ export type AssistantMessageEvent = EngineEvent<"assistant_message", AssistantMessage>;
371
+ export type ToolCallMessageEvent = EngineEvent<"tool_call_message", ToolCallMessage>;
372
+ export type ToolResultMessageEvent = EngineEvent<"tool_result_message", ToolResultMessage>;
373
+ export type ErrorMessageEvent = EngineEvent<"error_message", ErrorMessage>;
374
+
375
+ /**
376
+ * AgentMessageEvent - All lightweight message events
377
+ */
378
+ export type AgentMessageEvent =
379
+ | UserMessageEvent
380
+ | AssistantMessageEvent
381
+ | ToolCallMessageEvent
382
+ | ToolResultMessageEvent
383
+ | ErrorMessageEvent;
384
+
385
+ /**
386
+ * Type guard: is this a message event?
387
+ */
388
+ export function isMessageEvent(event: EngineEvent): event is AgentMessageEvent {
389
+ const messageTypes = [
390
+ "user_message",
391
+ "assistant_message",
392
+ "tool_call_message",
393
+ "tool_result_message",
394
+ "error_message",
395
+ ];
396
+ return messageTypes.includes(event.type);
397
+ }
398
+
399
+ // =============================================================================
400
+ // Turn Events
401
+ // =============================================================================
402
+
403
+ // --- Turn Event Data Types ---
404
+
405
+ export interface TurnRequestData {
406
+ turnId: string;
407
+ messageId: string;
408
+ content: string;
409
+ timestamp: number;
410
+ }
411
+
412
+ export interface TurnResponseData {
413
+ turnId: string;
414
+ messageId: string;
415
+ duration: number;
416
+ usage?: TokenUsage;
417
+ model?: string;
418
+ stopReason?: string;
419
+ timestamp: number;
420
+ }
421
+
422
+ /**
423
+ * TurnEvent - Base type for turn events
424
+ * @deprecated Use specific event types instead
425
+ */
426
+ export interface TurnEvent<T extends string = string, D = unknown> extends EngineEvent<T, D> {}
427
+
428
+ // --- Turn Event Types ---
429
+
430
+ export type TurnRequestEvent = EngineEvent<"turn_request", TurnRequestData>;
431
+ export type TurnResponseEvent = EngineEvent<"turn_response", TurnResponseData>;
432
+
433
+ /**
434
+ * AgentTurnEvent - All lightweight turn events
435
+ */
436
+ export type AgentTurnEvent = TurnRequestEvent | TurnResponseEvent;
437
+
438
+ /**
439
+ * Type guard: is this a turn event?
440
+ */
441
+ export function isTurnEvent(event: EngineEvent): event is AgentTurnEvent {
442
+ const turnTypes = ["turn_request", "turn_response"];
443
+ return turnTypes.includes(event.type);
444
+ }
445
+
446
+ // =============================================================================
447
+ // Agent Output
448
+ // =============================================================================
449
+
450
+ /**
451
+ * AgentOutput - Union of all possible agent output events
452
+ *
453
+ * Includes all event layers:
454
+ * - Stream: Real-time streaming events from Driver
455
+ * - State: State machine transitions
456
+ * - Message: Assembled messages
457
+ * - Turn: Turn analytics
458
+ */
459
+ export type AgentOutput = StreamEvent | AgentStateEvent | AgentMessageEvent | AgentTurnEvent;
460
+
461
+ // =============================================================================
462
+ // Event Handling Types
463
+ // =============================================================================
464
+
465
+ /**
466
+ * Unsubscribe function returned by on()
467
+ */
468
+ export type Unsubscribe = () => void;
469
+
470
+ /**
471
+ * Agent output event callback function type
472
+ */
473
+ export type AgentOutputCallback<T extends AgentOutput = AgentOutput> = (event: T) => void;
474
+
475
+ /**
476
+ * @deprecated Use AgentOutputCallback instead
477
+ */
478
+ export type AgentEventHandler<T extends AgentOutput = AgentOutput> = AgentOutputCallback<T>;
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Agent Types - Single Source of Truth
3
+ *
4
+ * AgentEngine is an independent event processing unit that can be tested
5
+ * in isolation without Runtime dependencies (Container, Session, Bus).
6
+ *
7
+ * ## Two-Domain Architecture
8
+ *
9
+ * ```
10
+ * +-------------------------------------------------------------+
11
+ * | Runtime Domain (@agentxjs/types/runtime) |
12
+ * | - SystemEvent (source, category, intent, context) |
13
+ * | - Container, Session, Sandbox, Environment |
14
+ * | - Agent (complete runtime entity with lifecycle) |
15
+ * | |
16
+ * | +-----------------------------------------------------+ |
17
+ * | | AgentEngine Domain (@agentxjs/types/agent) | |
18
+ * | | - AgentEvent (lightweight: type, timestamp, data) | |
19
+ * | | - AgentEngine (event processing unit) | |
20
+ * | | - Independent, testable in isolation | |
21
+ * | | | |
22
+ * | | Source <-- AgentEngine --> Presenter | |
23
+ * | | ^ | | | |
24
+ * | +----|-----------|--------------|-+-------------------+ |
25
+ * | | | | |
26
+ * | DriveableEvent | SystemEvent |
27
+ * | -> StreamEvent | (add context) |
28
+ * +---------------------|-----------------------------------------+
29
+ * |
30
+ * MealyMachine
31
+ * (pure event processor)
32
+ * ```
33
+ *
34
+ * ## Core Components
35
+ *
36
+ * - **AgentEngine**: Event processing unit (Source + MealyMachine + Presenter)
37
+ * - **AgentSource**: Input source - produces StreamEvent from external world
38
+ * - **AgentPresenter**: Output adapter - emits AgentOutput to external systems
39
+ * - **MealyMachine**: Pure Mealy Machine that transforms StreamEvent -> AgentOutput
40
+ *
41
+ * ## Event Layers (AgentOutput)
42
+ *
43
+ * 1. **StreamEvent**: Real-time incremental events (text_delta, tool_use_start...)
44
+ * 2. **AgentStateEvent**: Events that affect AgentState (conversation_*, tool_*, error_*)
45
+ * 3. **AgentMessageEvent**: Assembled messages (user_message, assistant_message...)
46
+ * 4. **AgentTurnEvent**: Turn analytics (turn_request, turn_response)
47
+ *
48
+ * ## Message Types (Three-Party Model)
49
+ *
50
+ * - **User**: Human participant (UserMessage)
51
+ * - **Assistant**: AI participant (AssistantMessage, ToolCallMessage)
52
+ * - **Tool**: Computer/execution environment (ToolResultMessage)
53
+ *
54
+ * @packageDocumentation
55
+ */
56
+
57
+ // =============================================================================
58
+ // Message Types - Content Parts and Messages
59
+ // =============================================================================
60
+
61
+ export type {
62
+ // Content Parts
63
+ TextPart,
64
+ ThinkingPart,
65
+ ImagePart,
66
+ FilePart,
67
+ ToolCallPart,
68
+ ToolResultOutput,
69
+ ToolResultPart,
70
+ ContentPart,
71
+ UserContentPart,
72
+ // Message Types
73
+ MessageRole,
74
+ MessageSubtype,
75
+ TokenUsage,
76
+ UserMessage,
77
+ AssistantMessage,
78
+ ToolCallMessage,
79
+ ToolResultMessage,
80
+ ErrorMessage,
81
+ Message,
82
+ } from "./message";
83
+
84
+ // =============================================================================
85
+ // Event Types - Stream, State, Message, Turn Events
86
+ // =============================================================================
87
+
88
+ export type {
89
+ // Base Types
90
+ EngineEvent,
91
+ AgentEvent,
92
+ // Agent State and Error
93
+ AgentState,
94
+ AgentErrorCategory,
95
+ AgentError,
96
+ // Stream Events
97
+ StopReason,
98
+ MessageStartData,
99
+ MessageDeltaData,
100
+ MessageStopData,
101
+ TextDeltaData,
102
+ ToolUseStartData,
103
+ InputJsonDeltaData,
104
+ ToolUseStopData,
105
+ ToolResultData,
106
+ ErrorReceivedData,
107
+ MessageStartEvent,
108
+ MessageDeltaEvent,
109
+ MessageStopEvent,
110
+ TextDeltaEvent,
111
+ ToolUseStartEvent,
112
+ InputJsonDeltaEvent,
113
+ ToolUseStopEvent,
114
+ ToolResultEvent,
115
+ ErrorReceivedEvent,
116
+ StreamEvent,
117
+ StreamEventType,
118
+ // State Events
119
+ ConversationQueuedData,
120
+ ConversationStartData,
121
+ ConversationThinkingData,
122
+ ConversationRespondingData,
123
+ ConversationEndData,
124
+ ConversationInterruptedData,
125
+ ToolPlannedData,
126
+ ToolExecutingData,
127
+ ToolCompletedData,
128
+ ToolFailedData,
129
+ ErrorOccurredData,
130
+ StateEvent,
131
+ ConversationQueuedEvent,
132
+ ConversationStartEvent,
133
+ ConversationThinkingEvent,
134
+ ConversationRespondingEvent,
135
+ ConversationEndEvent,
136
+ ConversationInterruptedEvent,
137
+ ToolPlannedEvent,
138
+ ToolExecutingEvent,
139
+ ToolCompletedEvent,
140
+ ToolFailedEvent,
141
+ ErrorOccurredEvent,
142
+ AgentErrorOccurredEvent,
143
+ AgentStateEvent,
144
+ // Message Events
145
+ MessageEvent,
146
+ UserMessageEvent,
147
+ AssistantMessageEvent,
148
+ ToolCallMessageEvent,
149
+ ToolResultMessageEvent,
150
+ ErrorMessageEvent,
151
+ AgentMessageEvent,
152
+ // Turn Events
153
+ TurnRequestData,
154
+ TurnResponseData,
155
+ TurnEvent,
156
+ TurnRequestEvent,
157
+ TurnResponseEvent,
158
+ AgentTurnEvent,
159
+ // Agent Output
160
+ AgentOutput,
161
+ // Event Handling
162
+ Unsubscribe,
163
+ AgentOutputCallback,
164
+ AgentEventHandler,
165
+ } from "./event";
166
+
167
+ // Type guards (functions, not types)
168
+ export { isStateEvent, isMessageEvent, isTurnEvent } from "./event";
169
+
170
+ // =============================================================================
171
+ // Engine Types - Engine, Source, Presenter, Middleware, Interceptor
172
+ // =============================================================================
173
+
174
+ export type {
175
+ // Message Queue
176
+ MessageQueue,
177
+ // Middleware & Interceptor
178
+ AgentMiddlewareNext,
179
+ AgentMiddleware,
180
+ AgentInterceptorNext,
181
+ AgentInterceptor,
182
+ // State Machine
183
+ StateChange,
184
+ StateChangeHandler,
185
+ AgentStateMachineInterface,
186
+ // Event Handler Maps
187
+ EventHandlerMap,
188
+ ReactHandlerMap,
189
+ // Agent Engine
190
+ AgentEngine,
191
+ // Source & Presenter (EventBus adapters)
192
+ AgentSource,
193
+ AgentPresenter,
194
+ AgentEventBus,
195
+ // Factory Options
196
+ CreateAgentOptions,
197
+ } from "./engine";