@hazeljs/agent 0.2.0-alpha.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.
Files changed (166) hide show
  1. package/IMPLEMENTATION_SUMMARY.md +400 -0
  2. package/LICENSE +192 -0
  3. package/PERSISTENCE.md +201 -0
  4. package/PRISMA_INTEGRATION.md +499 -0
  5. package/PRODUCTION_READINESS.md +264 -0
  6. package/QUICKSTART.md +135 -0
  7. package/README.md +541 -0
  8. package/STATE_VS_MEMORY.md +243 -0
  9. package/benchmarks/performance.benchmark.ts +157 -0
  10. package/coverage/clover.xml +1508 -0
  11. package/coverage/lcov-report/base.css +224 -0
  12. package/coverage/lcov-report/block-navigation.js +87 -0
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +296 -0
  15. package/coverage/lcov-report/prettify.css +1 -0
  16. package/coverage/lcov-report/prettify.js +2 -0
  17. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/coverage/lcov-report/sorter.js +210 -0
  19. package/coverage/lcov.info +2722 -0
  20. package/dist/agent.module.d.ts +57 -0
  21. package/dist/agent.module.d.ts.map +1 -0
  22. package/dist/agent.module.js +99 -0
  23. package/dist/agent.module.js.map +1 -0
  24. package/dist/context/agent.context.d.ts +27 -0
  25. package/dist/context/agent.context.d.ts.map +1 -0
  26. package/dist/context/agent.context.js +98 -0
  27. package/dist/context/agent.context.js.map +1 -0
  28. package/dist/decorators/agent.decorator.d.ts +21 -0
  29. package/dist/decorators/agent.decorator.d.ts.map +1 -0
  30. package/dist/decorators/agent.decorator.js +38 -0
  31. package/dist/decorators/agent.decorator.js.map +1 -0
  32. package/dist/decorators/delegate.decorator.d.ts +66 -0
  33. package/dist/decorators/delegate.decorator.d.ts.map +1 -0
  34. package/dist/decorators/delegate.decorator.js +108 -0
  35. package/dist/decorators/delegate.decorator.js.map +1 -0
  36. package/dist/decorators/tool.decorator.d.ts +23 -0
  37. package/dist/decorators/tool.decorator.d.ts.map +1 -0
  38. package/dist/decorators/tool.decorator.js +61 -0
  39. package/dist/decorators/tool.decorator.js.map +1 -0
  40. package/dist/events/event.emitter.d.ts +45 -0
  41. package/dist/events/event.emitter.d.ts.map +1 -0
  42. package/dist/events/event.emitter.js +96 -0
  43. package/dist/events/event.emitter.js.map +1 -0
  44. package/dist/executor/agent.executor.d.ts +58 -0
  45. package/dist/executor/agent.executor.d.ts.map +1 -0
  46. package/dist/executor/agent.executor.js +312 -0
  47. package/dist/executor/agent.executor.js.map +1 -0
  48. package/dist/executor/tool.executor.d.ts +55 -0
  49. package/dist/executor/tool.executor.d.ts.map +1 -0
  50. package/dist/executor/tool.executor.js +266 -0
  51. package/dist/executor/tool.executor.js.map +1 -0
  52. package/dist/graph/agent-graph.d.ts +131 -0
  53. package/dist/graph/agent-graph.d.ts.map +1 -0
  54. package/dist/graph/agent-graph.js +462 -0
  55. package/dist/graph/agent-graph.js.map +1 -0
  56. package/dist/graph/agent-graph.types.d.ts +210 -0
  57. package/dist/graph/agent-graph.types.d.ts.map +1 -0
  58. package/dist/graph/agent-graph.types.js +12 -0
  59. package/dist/graph/agent-graph.types.js.map +1 -0
  60. package/dist/index.d.ts +34 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +51 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/prompts/agent-system.prompt.d.ts +10 -0
  65. package/dist/prompts/agent-system.prompt.d.ts.map +1 -0
  66. package/dist/prompts/agent-system.prompt.js +18 -0
  67. package/dist/prompts/agent-system.prompt.js.map +1 -0
  68. package/dist/prompts/index.d.ts +4 -0
  69. package/dist/prompts/index.d.ts.map +1 -0
  70. package/dist/prompts/index.js +20 -0
  71. package/dist/prompts/index.js.map +1 -0
  72. package/dist/prompts/supervisor-routing.prompt.d.ts +9 -0
  73. package/dist/prompts/supervisor-routing.prompt.d.ts.map +1 -0
  74. package/dist/prompts/supervisor-routing.prompt.js +22 -0
  75. package/dist/prompts/supervisor-routing.prompt.js.map +1 -0
  76. package/dist/prompts/supervisor-system.prompt.d.ts +9 -0
  77. package/dist/prompts/supervisor-system.prompt.d.ts.map +1 -0
  78. package/dist/prompts/supervisor-system.prompt.js +21 -0
  79. package/dist/prompts/supervisor-system.prompt.js.map +1 -0
  80. package/dist/registry/agent.registry.d.ts +49 -0
  81. package/dist/registry/agent.registry.d.ts.map +1 -0
  82. package/dist/registry/agent.registry.js +90 -0
  83. package/dist/registry/agent.registry.js.map +1 -0
  84. package/dist/registry/tool.registry.d.ts +54 -0
  85. package/dist/registry/tool.registry.d.ts.map +1 -0
  86. package/dist/registry/tool.registry.js +153 -0
  87. package/dist/registry/tool.registry.js.map +1 -0
  88. package/dist/runtime/agent.runtime.d.ts +218 -0
  89. package/dist/runtime/agent.runtime.d.ts.map +1 -0
  90. package/dist/runtime/agent.runtime.extensions.d.ts +49 -0
  91. package/dist/runtime/agent.runtime.extensions.d.ts.map +1 -0
  92. package/dist/runtime/agent.runtime.extensions.js +93 -0
  93. package/dist/runtime/agent.runtime.extensions.js.map +1 -0
  94. package/dist/runtime/agent.runtime.js +448 -0
  95. package/dist/runtime/agent.runtime.js.map +1 -0
  96. package/dist/state/agent-state.interface.d.ts +63 -0
  97. package/dist/state/agent-state.interface.d.ts.map +1 -0
  98. package/dist/state/agent-state.interface.js +7 -0
  99. package/dist/state/agent-state.interface.js.map +1 -0
  100. package/dist/state/agent.state.d.ts +67 -0
  101. package/dist/state/agent.state.d.ts.map +1 -0
  102. package/dist/state/agent.state.js +172 -0
  103. package/dist/state/agent.state.js.map +1 -0
  104. package/dist/state/database-state.manager.d.ts +63 -0
  105. package/dist/state/database-state.manager.d.ts.map +1 -0
  106. package/dist/state/database-state.manager.js +282 -0
  107. package/dist/state/database-state.manager.js.map +1 -0
  108. package/dist/state/redis-state.manager.d.ts +81 -0
  109. package/dist/state/redis-state.manager.d.ts.map +1 -0
  110. package/dist/state/redis-state.manager.js +253 -0
  111. package/dist/state/redis-state.manager.js.map +1 -0
  112. package/dist/supervisor/supervisor.d.ts +81 -0
  113. package/dist/supervisor/supervisor.d.ts.map +1 -0
  114. package/dist/supervisor/supervisor.js +220 -0
  115. package/dist/supervisor/supervisor.js.map +1 -0
  116. package/dist/types/agent.types.d.ts +166 -0
  117. package/dist/types/agent.types.d.ts.map +1 -0
  118. package/dist/types/agent.types.js +32 -0
  119. package/dist/types/agent.types.js.map +1 -0
  120. package/dist/types/event.types.d.ts +198 -0
  121. package/dist/types/event.types.d.ts.map +1 -0
  122. package/dist/types/event.types.js +46 -0
  123. package/dist/types/event.types.js.map +1 -0
  124. package/dist/types/llm.types.d.ts +66 -0
  125. package/dist/types/llm.types.d.ts.map +1 -0
  126. package/dist/types/llm.types.js +7 -0
  127. package/dist/types/llm.types.js.map +1 -0
  128. package/dist/types/rag.types.d.ts +40 -0
  129. package/dist/types/rag.types.d.ts.map +1 -0
  130. package/dist/types/rag.types.js +7 -0
  131. package/dist/types/rag.types.js.map +1 -0
  132. package/dist/types/tool.types.d.ts +118 -0
  133. package/dist/types/tool.types.d.ts.map +1 -0
  134. package/dist/types/tool.types.js +19 -0
  135. package/dist/types/tool.types.js.map +1 -0
  136. package/dist/utils/circuit-breaker.d.ts +9 -0
  137. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  138. package/dist/utils/circuit-breaker.js +16 -0
  139. package/dist/utils/circuit-breaker.js.map +1 -0
  140. package/dist/utils/health-check.d.ts +71 -0
  141. package/dist/utils/health-check.d.ts.map +1 -0
  142. package/dist/utils/health-check.js +156 -0
  143. package/dist/utils/health-check.js.map +1 -0
  144. package/dist/utils/logger.d.ts +53 -0
  145. package/dist/utils/logger.d.ts.map +1 -0
  146. package/dist/utils/logger.js +133 -0
  147. package/dist/utils/logger.js.map +1 -0
  148. package/dist/utils/metrics.d.ts +90 -0
  149. package/dist/utils/metrics.d.ts.map +1 -0
  150. package/dist/utils/metrics.js +186 -0
  151. package/dist/utils/metrics.js.map +1 -0
  152. package/dist/utils/rate-limiter.d.ts +44 -0
  153. package/dist/utils/rate-limiter.d.ts.map +1 -0
  154. package/dist/utils/rate-limiter.js +82 -0
  155. package/dist/utils/rate-limiter.js.map +1 -0
  156. package/dist/utils/retry.d.ts +42 -0
  157. package/dist/utils/retry.d.ts.map +1 -0
  158. package/dist/utils/retry.js +103 -0
  159. package/dist/utils/retry.js.map +1 -0
  160. package/jest.config.js +30 -0
  161. package/logs/combined.log +1 -0
  162. package/logs/error.log +0 -0
  163. package/package.json +74 -0
  164. package/prisma-schema.example.prisma +76 -0
  165. package/tests/setup.ts +17 -0
  166. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Runtime
4
+ * Main runtime for managing agent lifecycle and execution
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentRuntime = void 0;
8
+ const agent_registry_1 = require("../registry/agent.registry");
9
+ const tool_registry_1 = require("../registry/tool.registry");
10
+ const agent_state_1 = require("../state/agent.state");
11
+ const agent_context_1 = require("../context/agent.context");
12
+ const agent_executor_1 = require("../executor/agent.executor");
13
+ const tool_executor_1 = require("../executor/tool.executor");
14
+ const event_emitter_1 = require("../events/event.emitter");
15
+ const agent_types_1 = require("../types/agent.types");
16
+ const rate_limiter_1 = require("../utils/rate-limiter");
17
+ const metrics_1 = require("../utils/metrics");
18
+ const logger_1 = require("../utils/logger");
19
+ const retry_1 = require("../utils/retry");
20
+ const circuit_breaker_1 = require("../utils/circuit-breaker");
21
+ const health_check_1 = require("../utils/health-check");
22
+ const agent_graph_1 = require("../graph/agent-graph");
23
+ const supervisor_1 = require("../supervisor/supervisor");
24
+ const delegate_decorator_1 = require("../decorators/delegate.decorator");
25
+ /**
26
+ * Agent Runtime
27
+ * Central runtime for agent execution and lifecycle management
28
+ */
29
+ class AgentRuntime {
30
+ constructor(config = {}) {
31
+ this.config = {
32
+ defaultMaxSteps: 10,
33
+ defaultTimeout: 300000,
34
+ enableObservability: true,
35
+ enableMetrics: true,
36
+ enableRetry: true,
37
+ enableCircuitBreaker: true,
38
+ logLevel: logger_1.LogLevel.INFO,
39
+ ...config,
40
+ };
41
+ // Initialize logger
42
+ this.logger = new logger_1.Logger({ level: this.config.logLevel });
43
+ // Initialize rate limiter if configured
44
+ if (this.config.rateLimitPerMinute) {
45
+ this.rateLimiter = new rate_limiter_1.RateLimiter({
46
+ tokensPerMinute: this.config.rateLimitPerMinute,
47
+ });
48
+ this.logger.info('Rate limiter initialized', {
49
+ tokensPerMinute: this.config.rateLimitPerMinute,
50
+ });
51
+ }
52
+ // Initialize metrics collector if enabled
53
+ if (this.config.enableMetrics) {
54
+ this.metrics = new metrics_1.MetricsCollector();
55
+ this.logger.info('Metrics collector initialized');
56
+ }
57
+ // Initialize retry handler if enabled
58
+ if (this.config.enableRetry) {
59
+ this.retryHandler = new retry_1.RetryHandler({
60
+ maxRetries: 3,
61
+ initialDelayMs: 1000,
62
+ onRetry: (attempt, error) => {
63
+ this.logger.warn('Retrying operation', {
64
+ attempt,
65
+ error: error.message,
66
+ });
67
+ },
68
+ });
69
+ }
70
+ // Initialize circuit breaker if enabled
71
+ if (this.config.enableCircuitBreaker) {
72
+ this.circuitBreaker = new circuit_breaker_1.CircuitBreaker({
73
+ failureThreshold: 5,
74
+ successThreshold: 2,
75
+ resetTimeout: 30000,
76
+ onStateChange: (_from, to) => {
77
+ this.logger.warn('Circuit breaker state changed', { state: to });
78
+ },
79
+ });
80
+ }
81
+ // Initialize health checker
82
+ this.healthChecker = new health_check_1.HealthChecker();
83
+ this.agentRegistry = new agent_registry_1.AgentRegistry();
84
+ this.toolRegistry = new tool_registry_1.ToolRegistry();
85
+ this.stateManager = config.stateManager || new agent_state_1.AgentStateManager();
86
+ this.contextBuilder = new agent_context_1.AgentContextBuilder(config.memoryManager);
87
+ this.eventEmitter = new event_emitter_1.AgentEventEmitter();
88
+ this.toolExecutor = new tool_executor_1.ToolExecutor((type, data) => {
89
+ this.eventEmitter.emit(type, '', '', data);
90
+ }, config.guardrailsService);
91
+ this.agentExecutor = new agent_executor_1.AgentExecutor(this.stateManager, this.contextBuilder, this.toolExecutor, this.toolRegistry, config.llmProvider, (type, executionId, data) => {
92
+ this.eventEmitter.emit(type, '', executionId, data);
93
+ });
94
+ this.logger.info('Agent runtime initialized', {
95
+ enableMetrics: this.config.enableMetrics,
96
+ enableRetry: this.config.enableRetry,
97
+ enableCircuitBreaker: this.config.enableCircuitBreaker,
98
+ });
99
+ }
100
+ /**
101
+ * Register an agent class
102
+ */
103
+ registerAgent(agentClass) {
104
+ this.agentRegistry.register(agentClass);
105
+ }
106
+ /**
107
+ * Register an agent instance.
108
+ * Also patches any @Delegate-decorated methods so they call the target agent
109
+ * via this runtime rather than executing the original (stub) method body.
110
+ */
111
+ registerAgentInstance(agentName, instance) {
112
+ this.agentRegistry.registerInstance(agentName, instance);
113
+ this.patchDelegateMethods(agentName, instance);
114
+ this.toolRegistry.registerAgentTools(agentName, instance);
115
+ }
116
+ /**
117
+ * Replace @Delegate stub methods on an agent instance with real runtime calls.
118
+ * Called automatically by registerAgentInstance().
119
+ */
120
+ patchDelegateMethods(agentName, instance) {
121
+ if (!instance || typeof instance !== 'object')
122
+ return;
123
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
124
+ const agentClass = instance.constructor;
125
+ const delegatedMethods = (0, delegate_decorator_1.getDelegatedMethods)(agentClass);
126
+ for (const methodName of delegatedMethods) {
127
+ const delegateConfig = (0, delegate_decorator_1.getDelegateMetadata)(instance, methodName);
128
+ if (!delegateConfig)
129
+ continue;
130
+ const targetAgentName = delegateConfig.agent;
131
+ const inputField = delegateConfig.inputField ?? 'input';
132
+ // Patch the instance method to delegate to the target agent
133
+ instance[methodName] = async (args) => {
134
+ const agentInput = typeof args === 'string' ? args : (args[inputField] ?? JSON.stringify(args));
135
+ this.logger.debug(`Delegating from "${agentName}" to "${targetAgentName}"`, {
136
+ input: agentInput,
137
+ });
138
+ const result = await this.execute(targetAgentName, agentInput);
139
+ return result.response ?? '';
140
+ };
141
+ this.logger.debug(`Patched @Delegate method "${methodName}" on agent "${agentName}"`, {
142
+ targetAgent: targetAgentName,
143
+ });
144
+ }
145
+ }
146
+ /**
147
+ * Execute an agent
148
+ */
149
+ async execute(agentName, input, options = {}) {
150
+ // Check rate limit
151
+ if (this.rateLimiter) {
152
+ const allowed = await this.rateLimiter.waitForToken(5000);
153
+ if (!allowed) {
154
+ this.logger.error('Rate limit exceeded', undefined, { agentName });
155
+ throw new Error('Rate limit exceeded - too many requests');
156
+ }
157
+ }
158
+ const startTime = Date.now();
159
+ let success = false;
160
+ try {
161
+ this.logger.info('Starting agent execution', {
162
+ agentName,
163
+ sessionId: options.sessionId,
164
+ userId: options.userId,
165
+ });
166
+ // Execute with retry and circuit breaker
167
+ const result = await this.executeWithProtection(agentName, input, options);
168
+ success = result.state === agent_types_1.AgentState.COMPLETED;
169
+ const duration = Date.now() - startTime;
170
+ // Record metrics
171
+ if (this.metrics) {
172
+ this.metrics.recordExecution(success, duration);
173
+ }
174
+ this.logger.info('Agent execution completed', {
175
+ agentName,
176
+ executionId: result.executionId,
177
+ state: result.state,
178
+ duration,
179
+ });
180
+ return result;
181
+ }
182
+ catch (error) {
183
+ const duration = Date.now() - startTime;
184
+ if (this.metrics) {
185
+ this.metrics.recordExecution(false, duration);
186
+ }
187
+ this.logger.error('Agent execution failed', error, {
188
+ agentName,
189
+ duration,
190
+ });
191
+ throw error;
192
+ }
193
+ }
194
+ /**
195
+ * Execute with retry and circuit breaker protection
196
+ */
197
+ async executeWithProtection(agentName, input, options) {
198
+ const executeFn = async () => {
199
+ const agent = this.agentRegistry.getAgent(agentName);
200
+ if (!agent) {
201
+ throw new Error(`Agent ${agentName} not found`);
202
+ }
203
+ const sessionId = options.sessionId || this.generateSessionId();
204
+ const maxSteps = options.maxSteps || this.config.defaultMaxSteps || 10;
205
+ const contextResult = this.stateManager.createContext(agentName, sessionId, input, options.userId, {
206
+ ...options.metadata,
207
+ systemPrompt: agent.systemPrompt,
208
+ agentDescription: agent.description,
209
+ });
210
+ const context = contextResult instanceof Promise ? await contextResult : contextResult;
211
+ if (options.enableMemory !== false && this.config.memoryManager) {
212
+ await this.contextBuilder.buildWithMemory(context);
213
+ }
214
+ if (options.enableRAG !== false && this.config.ragService) {
215
+ await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5);
216
+ }
217
+ if (options.initialContext) {
218
+ Object.assign(context.memory.workingMemory, options.initialContext);
219
+ }
220
+ const result = await this.agentExecutor.execute(context, maxSteps);
221
+ if (this.config.memoryManager) {
222
+ await this.contextBuilder.persistToMemory(context);
223
+ }
224
+ return result;
225
+ };
226
+ // Apply circuit breaker if enabled
227
+ if (this.circuitBreaker) {
228
+ const circuitBreakerFn = () => this.circuitBreaker.execute(executeFn);
229
+ // Apply retry if enabled
230
+ if (this.retryHandler) {
231
+ return this.retryHandler.execute(circuitBreakerFn);
232
+ }
233
+ return circuitBreakerFn();
234
+ }
235
+ // Apply retry only if circuit breaker is disabled
236
+ if (this.retryHandler) {
237
+ return this.retryHandler.execute(executeFn);
238
+ }
239
+ return executeFn();
240
+ }
241
+ /**
242
+ * Resume a paused execution
243
+ */
244
+ async resume(executionId, input) {
245
+ return this.agentExecutor.resume(executionId, input);
246
+ }
247
+ /**
248
+ * Get execution context
249
+ */
250
+ async getContext(executionId) {
251
+ const result = this.stateManager.getContext(executionId);
252
+ return result instanceof Promise ? await result : result;
253
+ }
254
+ /**
255
+ * Subscribe to agent events
256
+ */
257
+ on(type, handler) {
258
+ this.eventEmitter.on(type, handler);
259
+ }
260
+ /**
261
+ * Subscribe to all agent events
262
+ */
263
+ onAny(handler) {
264
+ this.eventEmitter.onAny(handler);
265
+ }
266
+ /**
267
+ * Unsubscribe from events
268
+ */
269
+ off(type, handler) {
270
+ this.eventEmitter.off(type, handler);
271
+ }
272
+ /**
273
+ * Get all registered agents
274
+ */
275
+ getAgents() {
276
+ return this.agentRegistry.getAllAgents().map((a) => a.name);
277
+ }
278
+ /**
279
+ * Get agent metadata
280
+ */
281
+ getAgentMetadata(agentName) {
282
+ return this.agentRegistry.getAgent(agentName);
283
+ }
284
+ /**
285
+ * Get health check status
286
+ */
287
+ async healthCheck() {
288
+ const metricsData = this.metrics
289
+ ? {
290
+ totalExecutions: this.metrics.getMetrics().executions.total,
291
+ successRate: this.metrics.getMetrics().executions.successRate,
292
+ averageLatency: this.metrics.getMetrics().performance.averageDuration,
293
+ }
294
+ : undefined;
295
+ return this.healthChecker.check(this.config.llmProvider, this.config.ragService, metricsData);
296
+ }
297
+ /**
298
+ * Get metrics
299
+ */
300
+ getMetrics() {
301
+ return this.metrics?.getMetrics();
302
+ }
303
+ /**
304
+ * Get metrics summary
305
+ */
306
+ getMetricsSummary() {
307
+ return this.metrics?.getSummary() || 'Metrics not enabled';
308
+ }
309
+ /**
310
+ * Reset metrics
311
+ */
312
+ resetMetrics() {
313
+ this.metrics?.reset();
314
+ }
315
+ /**
316
+ * Get rate limiter status
317
+ */
318
+ getRateLimiterStatus() {
319
+ return {
320
+ enabled: !!this.rateLimiter,
321
+ availableTokens: this.rateLimiter?.getAvailableTokens(),
322
+ };
323
+ }
324
+ /**
325
+ * Get circuit breaker status
326
+ */
327
+ getCircuitBreakerStatus() {
328
+ return {
329
+ enabled: !!this.circuitBreaker,
330
+ state: this.circuitBreaker?.getState(),
331
+ failureCount: this.circuitBreaker?.getFailureCount(),
332
+ successCount: this.circuitBreaker?.getSuccessCount(),
333
+ };
334
+ }
335
+ /**
336
+ * Reset circuit breaker
337
+ */
338
+ resetCircuitBreaker() {
339
+ this.circuitBreaker?.reset();
340
+ }
341
+ /**
342
+ * Get agent tools
343
+ */
344
+ getAgentTools(agentName) {
345
+ return this.toolRegistry.getAgentTools(agentName);
346
+ }
347
+ /**
348
+ * Approve a tool execution
349
+ */
350
+ approveToolExecution(requestId, approvedBy) {
351
+ this.toolExecutor.approveExecution(requestId, approvedBy);
352
+ }
353
+ /**
354
+ * Reject a tool execution
355
+ */
356
+ rejectToolExecution(requestId) {
357
+ this.toolExecutor.rejectExecution(requestId);
358
+ }
359
+ /**
360
+ * Get pending tool approvals
361
+ */
362
+ getPendingApprovals() {
363
+ return this.toolExecutor.getPendingApprovals();
364
+ }
365
+ // ---------------------------------------------------------------------------
366
+ // Multi-agent orchestration
367
+ // ---------------------------------------------------------------------------
368
+ /**
369
+ * Create a new `AgentGraph` builder for this runtime.
370
+ *
371
+ * @param graphId A unique identifier for the graph (used in logs/events).
372
+ *
373
+ * @example
374
+ * ```ts
375
+ * const graph = runtime.createGraph('research-pipeline')
376
+ * .addNode('researcher', { type: 'agent', agentName: 'ResearchAgent' })
377
+ * .addNode('writer', { type: 'agent', agentName: 'WriterAgent' })
378
+ * .addEdge('researcher', 'writer')
379
+ * .addEdge('writer', '__end__')
380
+ * .setEntryPoint('researcher')
381
+ * .compile();
382
+ *
383
+ * const result = await graph.execute('Write an article about LLMs');
384
+ * ```
385
+ */
386
+ createGraph(graphId) {
387
+ return new agent_graph_1.AgentGraph(graphId, this);
388
+ }
389
+ /**
390
+ * Create a `SupervisorAgent` that orchestrates a team of worker agents.
391
+ *
392
+ * Requires an LLM provider to be configured on the runtime.
393
+ *
394
+ * @example
395
+ * ```ts
396
+ * const supervisor = runtime.createSupervisor({
397
+ * name: 'project-manager',
398
+ * workers: ['ResearchAgent', 'CoderAgent', 'WriterAgent'],
399
+ * maxRounds: 6,
400
+ * });
401
+ *
402
+ * const result = await supervisor.run('Build a REST API for a todo app');
403
+ * console.log(result.response);
404
+ * ```
405
+ */
406
+ createSupervisor(config) {
407
+ if (!this.config.llmProvider) {
408
+ throw new Error('createSupervisor() requires an LLM provider. ' +
409
+ 'Pass `llmProvider` in AgentRuntimeConfig.');
410
+ }
411
+ return new supervisor_1.SupervisorAgent(config, this.config.llmProvider, this);
412
+ }
413
+ /**
414
+ * Dynamically spawn a new agent execution and return its result.
415
+ * Useful inside @Tool methods when one agent needs to call another.
416
+ *
417
+ * @example
418
+ * ```ts
419
+ * @Tool({ description: 'Research and summarize a topic' })
420
+ * async researchAndSummarize(topic: string) {
421
+ * const research = await this.runtime.spawn('ResearchAgent', topic);
422
+ * const summary = await this.runtime.spawn('SummaryAgent', research.response ?? '');
423
+ * return summary.response;
424
+ * }
425
+ * ```
426
+ */
427
+ async spawn(agentName, input, options = {}) {
428
+ return this.execute(agentName, input, options);
429
+ }
430
+ /**
431
+ * Shutdown the runtime
432
+ */
433
+ async shutdown() {
434
+ const clearResult = this.stateManager.clear();
435
+ if (clearResult instanceof Promise) {
436
+ await clearResult;
437
+ }
438
+ this.eventEmitter.clear();
439
+ }
440
+ /**
441
+ * Generate a session ID
442
+ */
443
+ generateSessionId() {
444
+ return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
445
+ }
446
+ }
447
+ exports.AgentRuntime = AgentRuntime;
448
+ //# sourceMappingURL=agent.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.runtime.js","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Agent State Manager Interface
3
+ * Defines the contract for state persistence backends
4
+ */
5
+ import { AgentContext, AgentState, AgentStep } from '../types/agent.types';
6
+ /**
7
+ * Interface for agent state management backends
8
+ */
9
+ export interface IAgentStateManager {
10
+ /**
11
+ * Create a new agent execution context
12
+ */
13
+ createContext(agentId: string, sessionId: string, input: string, userId?: string, metadata?: Record<string, unknown>): Promise<AgentContext> | AgentContext;
14
+ /**
15
+ * Get execution context
16
+ */
17
+ getContext(executionId: string): Promise<AgentContext | undefined> | AgentContext | undefined;
18
+ /**
19
+ * Update agent state
20
+ */
21
+ updateState(executionId: string, newState: AgentState): Promise<void> | void;
22
+ /**
23
+ * Add a step to the execution
24
+ */
25
+ addStep(executionId: string, step: AgentStep): Promise<void> | void;
26
+ /**
27
+ * Update the last step
28
+ */
29
+ updateLastStep(executionId: string, updates: Partial<AgentStep>): Promise<void> | void;
30
+ /**
31
+ * Add message to conversation history
32
+ */
33
+ addMessage(executionId: string, role: 'user' | 'assistant' | 'system' | 'tool', content: string): Promise<void> | void;
34
+ /**
35
+ * Set working memory value
36
+ */
37
+ setWorkingMemory(executionId: string, key: string, value: unknown): Promise<void> | void;
38
+ /**
39
+ * Get working memory value
40
+ */
41
+ getWorkingMemory(executionId: string, key: string): Promise<unknown> | unknown;
42
+ /**
43
+ * Add RAG context
44
+ */
45
+ addRAGContext(executionId: string, contexts: string[]): Promise<void> | void;
46
+ /**
47
+ * Check if execution can continue
48
+ */
49
+ canContinue(executionId: string, maxSteps: number): Promise<boolean> | boolean;
50
+ /**
51
+ * Delete execution context
52
+ */
53
+ deleteContext(executionId: string): Promise<void> | void;
54
+ /**
55
+ * Clear all contexts
56
+ */
57
+ clear(): Promise<void> | void;
58
+ /**
59
+ * Get all contexts for a session
60
+ */
61
+ getSessionContexts(sessionId: string): Promise<AgentContext[]> | AgentContext[];
62
+ }
63
+ //# sourceMappingURL=agent-state.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-state.interface.d.ts","sourceRoot":"","sources":["../../src/state/agent-state.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,YAAY,GAAG,SAAS,CAAC;IAE9F;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpE;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvF;;OAEG;IACH,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,EAC9C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzF;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAE/E;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAE/E;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzD;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC;CACjF"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Agent State Manager Interface
4
+ * Defines the contract for state persistence backends
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=agent-state.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-state.interface.js","sourceRoot":"","sources":["../../src/state/agent-state.interface.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Agent State Management
3
+ * Manages agent execution state and persistence
4
+ */
5
+ import { AgentContext, AgentState, AgentStep } from '../types/agent.types';
6
+ import { IAgentStateManager } from './agent-state.interface';
7
+ /**
8
+ * Agent State Manager
9
+ * In-memory implementation - default state manager
10
+ * Handles state transitions and persistence
11
+ */
12
+ export declare class AgentStateManager implements IAgentStateManager {
13
+ private contexts;
14
+ /**
15
+ * Create a new agent execution context
16
+ */
17
+ createContext(agentId: string, sessionId: string, input: string, userId?: string, metadata?: Record<string, unknown>): AgentContext;
18
+ /**
19
+ * Get execution context
20
+ */
21
+ getContext(executionId: string): AgentContext | undefined;
22
+ /**
23
+ * Update agent state
24
+ */
25
+ updateState(executionId: string, newState: AgentState): void;
26
+ /**
27
+ * Add a step to the execution
28
+ */
29
+ addStep(executionId: string, step: AgentStep): void;
30
+ /**
31
+ * Update the last step
32
+ */
33
+ updateLastStep(executionId: string, updates: Partial<AgentStep>): void;
34
+ /**
35
+ * Add message to conversation history
36
+ */
37
+ addMessage(executionId: string, role: 'user' | 'assistant' | 'system' | 'tool', content: string): void;
38
+ /**
39
+ * Set working memory value
40
+ */
41
+ setWorkingMemory(executionId: string, key: string, value: unknown): void;
42
+ /**
43
+ * Get working memory value
44
+ */
45
+ getWorkingMemory(executionId: string, key: string): unknown;
46
+ /**
47
+ * Add RAG context
48
+ */
49
+ addRAGContext(executionId: string, contexts: string[]): void;
50
+ /**
51
+ * Check if execution can continue
52
+ */
53
+ canContinue(executionId: string, maxSteps: number): boolean;
54
+ /**
55
+ * Delete execution context
56
+ */
57
+ deleteContext(executionId: string): void;
58
+ /**
59
+ * Clear all contexts
60
+ */
61
+ clear(): void;
62
+ /**
63
+ * Get all contexts for a session
64
+ */
65
+ getSessionContexts(sessionId: string): AgentContext[];
66
+ }
67
+ //# sourceMappingURL=agent.state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.state.d.ts","sourceRoot":"","sources":["../../src/state/agent.state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAwC;IAExD;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,YAAY;IA2Bf;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzD;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAU5D;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAetE;;OAEG;IACH,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,EAC9C,OAAO,EAAE,MAAM,GACd,IAAI;IAcP;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAUxE;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAS3D;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAU5D;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAiB3D;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;CAGtD"}