@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,471 @@
1
+ /**
2
+ * Container Events - Container lifecycle and sandbox events
3
+ *
4
+ * Events for container operations in the event system.
5
+ */
6
+
7
+ import type { SystemEvent } from "./base";
8
+
9
+ // ============================================================================
10
+ // Container Lifecycle Events
11
+ // ============================================================================
12
+
13
+ /**
14
+ * Base ContainerLifecycleEvent
15
+ */
16
+ interface BaseContainerLifecycleEvent<T extends string, D = unknown> extends SystemEvent<
17
+ T,
18
+ D,
19
+ "container",
20
+ "lifecycle",
21
+ "notification"
22
+ > {}
23
+
24
+ /**
25
+ * ContainerCreatedEvent - Container was created
26
+ */
27
+ export interface ContainerCreatedEvent extends BaseContainerLifecycleEvent<
28
+ "container_created",
29
+ {
30
+ containerId: string;
31
+ name?: string;
32
+ createdAt: number;
33
+ }
34
+ > {}
35
+
36
+ /**
37
+ * ContainerDestroyedEvent - Container was destroyed
38
+ */
39
+ export interface ContainerDestroyedEvent extends BaseContainerLifecycleEvent<
40
+ "container_destroyed",
41
+ {
42
+ containerId: string;
43
+ reason?: string;
44
+ agentCount: number;
45
+ }
46
+ > {}
47
+
48
+ /**
49
+ * AgentRegisteredEvent - Agent was registered to container
50
+ */
51
+ export interface AgentRegisteredEvent extends BaseContainerLifecycleEvent<
52
+ "agent_registered",
53
+ {
54
+ containerId: string;
55
+ agentId: string;
56
+ definitionName: string;
57
+ registeredAt: number;
58
+ }
59
+ > {}
60
+
61
+ /**
62
+ * AgentUnregisteredEvent - Agent was unregistered from container
63
+ */
64
+ export interface AgentUnregisteredEvent extends BaseContainerLifecycleEvent<
65
+ "agent_unregistered",
66
+ {
67
+ containerId: string;
68
+ agentId: string;
69
+ reason?: string;
70
+ }
71
+ > {}
72
+
73
+ /**
74
+ * ContainerLifecycleEvent - All container lifecycle events
75
+ */
76
+ export type ContainerLifecycleEvent =
77
+ | ContainerCreatedEvent
78
+ | ContainerDestroyedEvent
79
+ | AgentRegisteredEvent
80
+ | AgentUnregisteredEvent;
81
+
82
+ /**
83
+ * Type guard: is this a ContainerLifecycleEvent?
84
+ */
85
+ export function isContainerLifecycleEvent(event: {
86
+ source?: string;
87
+ category?: string;
88
+ }): event is ContainerLifecycleEvent {
89
+ return event.source === "container" && event.category === "lifecycle";
90
+ }
91
+
92
+ // ============================================================================
93
+ // Sandbox Workdir Events
94
+ // ============================================================================
95
+
96
+ /**
97
+ * Base WorkdirRequest
98
+ */
99
+ interface BaseWorkdirRequest<T extends string, D = unknown> extends SystemEvent<
100
+ T,
101
+ D,
102
+ "sandbox",
103
+ "workdir",
104
+ "request"
105
+ > {}
106
+
107
+ /**
108
+ * Base WorkdirResult
109
+ */
110
+ interface BaseWorkdirResult<T extends string, D = unknown> extends SystemEvent<
111
+ T,
112
+ D,
113
+ "sandbox",
114
+ "workdir",
115
+ "result"
116
+ > {}
117
+
118
+ /**
119
+ * Base WorkdirNotification
120
+ */
121
+ interface BaseWorkdirNotification<T extends string, D = unknown> extends SystemEvent<
122
+ T,
123
+ D,
124
+ "sandbox",
125
+ "workdir",
126
+ "notification"
127
+ > {}
128
+
129
+ /**
130
+ * FileReadRequest - Request to read a file
131
+ */
132
+ export interface FileReadRequest extends BaseWorkdirRequest<
133
+ "file_read_request",
134
+ {
135
+ path: string;
136
+ encoding?: string;
137
+ }
138
+ > {}
139
+
140
+ /**
141
+ * FileReadResult - File read result
142
+ */
143
+ export interface FileReadResult extends BaseWorkdirResult<
144
+ "file_read_result",
145
+ {
146
+ path: string;
147
+ content: string;
148
+ size: number;
149
+ encoding: string;
150
+ }
151
+ > {}
152
+
153
+ /**
154
+ * FileWriteRequest - Request to write a file
155
+ */
156
+ export interface FileWriteRequest extends BaseWorkdirRequest<
157
+ "file_write_request",
158
+ {
159
+ path: string;
160
+ content: string;
161
+ encoding?: string;
162
+ createDirectories?: boolean;
163
+ }
164
+ > {}
165
+
166
+ /**
167
+ * FileWrittenEvent - File was written
168
+ */
169
+ export interface FileWrittenEvent extends BaseWorkdirResult<
170
+ "file_written",
171
+ {
172
+ path: string;
173
+ size: number;
174
+ timestamp: number;
175
+ }
176
+ > {}
177
+
178
+ /**
179
+ * FileDeleteRequest - Request to delete a file
180
+ */
181
+ export interface FileDeleteRequest extends BaseWorkdirRequest<
182
+ "file_delete_request",
183
+ {
184
+ path: string;
185
+ recursive?: boolean;
186
+ }
187
+ > {}
188
+
189
+ /**
190
+ * FileDeletedEvent - File was deleted
191
+ */
192
+ export interface FileDeletedEvent extends BaseWorkdirResult<
193
+ "file_deleted",
194
+ {
195
+ path: string;
196
+ timestamp: number;
197
+ }
198
+ > {}
199
+
200
+ /**
201
+ * DirectoryListRequest - Request to list directory
202
+ */
203
+ export interface DirectoryListRequest extends BaseWorkdirRequest<
204
+ "directory_list_request",
205
+ {
206
+ path: string;
207
+ recursive?: boolean;
208
+ pattern?: string;
209
+ }
210
+ > {}
211
+
212
+ /**
213
+ * DirectoryListResult - Directory listing result
214
+ */
215
+ export interface DirectoryListResult extends BaseWorkdirResult<
216
+ "directory_list_result",
217
+ {
218
+ path: string;
219
+ entries: Array<{
220
+ name: string;
221
+ type: "file" | "directory";
222
+ size?: number;
223
+ modifiedAt?: number;
224
+ }>;
225
+ }
226
+ > {}
227
+
228
+ /**
229
+ * WorkdirErrorEvent - Workdir operation error
230
+ */
231
+ export interface WorkdirErrorEvent extends BaseWorkdirNotification<
232
+ "workdir_error",
233
+ {
234
+ operation: string;
235
+ path: string;
236
+ code: string;
237
+ message: string;
238
+ }
239
+ > {}
240
+
241
+ /**
242
+ * WorkdirEvent - All workdir events
243
+ */
244
+ export type WorkdirEvent =
245
+ | FileReadRequest
246
+ | FileReadResult
247
+ | FileWriteRequest
248
+ | FileWrittenEvent
249
+ | FileDeleteRequest
250
+ | FileDeletedEvent
251
+ | DirectoryListRequest
252
+ | DirectoryListResult
253
+ | WorkdirErrorEvent;
254
+
255
+ /**
256
+ * Workdir request events
257
+ */
258
+ export type WorkdirRequestEvent =
259
+ | FileReadRequest
260
+ | FileWriteRequest
261
+ | FileDeleteRequest
262
+ | DirectoryListRequest;
263
+
264
+ /**
265
+ * Workdir result events
266
+ */
267
+ export type WorkdirResultEvent =
268
+ | FileReadResult
269
+ | FileWrittenEvent
270
+ | FileDeletedEvent
271
+ | DirectoryListResult;
272
+
273
+ /**
274
+ * Type guard: is this a WorkdirEvent?
275
+ */
276
+ export function isWorkdirEvent(event: {
277
+ source?: string;
278
+ category?: string;
279
+ }): event is WorkdirEvent {
280
+ return event.source === "sandbox" && event.category === "workdir";
281
+ }
282
+
283
+ // ============================================================================
284
+ // Sandbox MCP Events
285
+ // ============================================================================
286
+
287
+ /**
288
+ * Base MCPRequest
289
+ */
290
+ interface BaseMCPRequest<T extends string, D = unknown> extends SystemEvent<
291
+ T,
292
+ D,
293
+ "sandbox",
294
+ "mcp",
295
+ "request"
296
+ > {}
297
+
298
+ /**
299
+ * Base MCPResult
300
+ */
301
+ interface BaseMCPResult<T extends string, D = unknown> extends SystemEvent<
302
+ T,
303
+ D,
304
+ "sandbox",
305
+ "mcp",
306
+ "result"
307
+ > {}
308
+
309
+ /**
310
+ * Base MCPNotification
311
+ */
312
+ interface BaseMCPNotification<T extends string, D = unknown> extends SystemEvent<
313
+ T,
314
+ D,
315
+ "sandbox",
316
+ "mcp",
317
+ "notification"
318
+ > {}
319
+
320
+ /**
321
+ * ToolExecuteRequest - Request to execute a tool
322
+ */
323
+ export interface ToolExecuteRequest extends BaseMCPRequest<
324
+ "tool_execute_request",
325
+ {
326
+ toolId: string;
327
+ toolName: string;
328
+ serverName: string;
329
+ input: Record<string, unknown>;
330
+ timestamp: number;
331
+ }
332
+ > {}
333
+
334
+ /**
335
+ * ToolExecutedEvent - Tool execution completed
336
+ */
337
+ export interface ToolExecutedEvent extends BaseMCPResult<
338
+ "tool_executed",
339
+ {
340
+ toolId: string;
341
+ toolName: string;
342
+ result: unknown;
343
+ duration: number;
344
+ timestamp: number;
345
+ }
346
+ > {}
347
+
348
+ /**
349
+ * ToolExecutionErrorEvent - Tool execution failed
350
+ */
351
+ export interface ToolExecutionErrorEvent extends BaseMCPNotification<
352
+ "tool_execution_error",
353
+ {
354
+ toolId: string;
355
+ toolName: string;
356
+ code: string;
357
+ message: string;
358
+ timestamp: number;
359
+ }
360
+ > {}
361
+
362
+ /**
363
+ * MCPServerConnectedEvent - MCP server connected
364
+ */
365
+ export interface MCPServerConnectedEvent extends BaseMCPNotification<
366
+ "mcp_server_connected",
367
+ {
368
+ serverName: string;
369
+ version?: string;
370
+ toolCount: number;
371
+ resourceCount: number;
372
+ timestamp: number;
373
+ }
374
+ > {}
375
+
376
+ /**
377
+ * MCPServerDisconnectedEvent - MCP server disconnected
378
+ */
379
+ export interface MCPServerDisconnectedEvent extends BaseMCPNotification<
380
+ "mcp_server_disconnected",
381
+ {
382
+ serverName: string;
383
+ reason?: string;
384
+ timestamp: number;
385
+ }
386
+ > {}
387
+
388
+ /**
389
+ * ResourceReadRequest - Request to read an MCP resource
390
+ */
391
+ export interface ResourceReadRequest extends BaseMCPRequest<
392
+ "resource_read_request",
393
+ {
394
+ serverName: string;
395
+ uri: string;
396
+ }
397
+ > {}
398
+
399
+ /**
400
+ * ResourceReadResult - Resource read result
401
+ */
402
+ export interface ResourceReadResult extends BaseMCPResult<
403
+ "resource_read_result",
404
+ {
405
+ serverName: string;
406
+ uri: string;
407
+ content: unknown;
408
+ mimeType?: string;
409
+ }
410
+ > {}
411
+
412
+ /**
413
+ * MCPEvent - All MCP events
414
+ */
415
+ export type MCPEvent =
416
+ | ToolExecuteRequest
417
+ | ToolExecutedEvent
418
+ | ToolExecutionErrorEvent
419
+ | MCPServerConnectedEvent
420
+ | MCPServerDisconnectedEvent
421
+ | ResourceReadRequest
422
+ | ResourceReadResult;
423
+
424
+ /**
425
+ * MCP request events
426
+ */
427
+ export type MCPRequestEvent = ToolExecuteRequest | ResourceReadRequest;
428
+
429
+ /**
430
+ * MCP result events
431
+ */
432
+ export type MCPResultEvent = ToolExecutedEvent | ResourceReadResult;
433
+
434
+ /**
435
+ * Type guard: is this a MCPEvent?
436
+ */
437
+ export function isMCPEvent(event: { source?: string; category?: string }): event is MCPEvent {
438
+ return event.source === "sandbox" && event.category === "mcp";
439
+ }
440
+
441
+ // ============================================================================
442
+ // Sandbox Event Union
443
+ // ============================================================================
444
+
445
+ /**
446
+ * SandboxEvent - All sandbox events
447
+ */
448
+ export type SandboxEvent = WorkdirEvent | MCPEvent;
449
+
450
+ /**
451
+ * Type guard: is this a sandbox event?
452
+ */
453
+ export function isSandboxEvent(event: { source?: string }): event is SandboxEvent {
454
+ return event.source === "sandbox";
455
+ }
456
+
457
+ // ============================================================================
458
+ // Container Event Union
459
+ // ============================================================================
460
+
461
+ /**
462
+ * ContainerEvent - All container events
463
+ */
464
+ export type ContainerEvent = ContainerLifecycleEvent | SandboxEvent;
465
+
466
+ /**
467
+ * Type guard: is this a container event?
468
+ */
469
+ export function isContainerEvent(event: { source?: string }): event is ContainerEvent {
470
+ return event.source === "container" || event.source === "sandbox";
471
+ }