@hazeljs/agent 0.2.0-beta.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 (117) hide show
  1. package/IMPLEMENTATION_SUMMARY.md +400 -0
  2. package/PERSISTENCE.md +201 -0
  3. package/PRISMA_INTEGRATION.md +499 -0
  4. package/PRODUCTION_READINESS.md +264 -0
  5. package/QUICKSTART.md +135 -0
  6. package/README.md +427 -0
  7. package/STATE_VS_MEMORY.md +243 -0
  8. package/dist/agent.module.d.ts +42 -0
  9. package/dist/agent.module.d.ts.map +1 -0
  10. package/dist/agent.module.js +90 -0
  11. package/dist/agent.module.js.map +1 -0
  12. package/dist/context/agent.context.d.ts +27 -0
  13. package/dist/context/agent.context.d.ts.map +1 -0
  14. package/dist/context/agent.context.js +98 -0
  15. package/dist/context/agent.context.js.map +1 -0
  16. package/dist/decorators/agent.decorator.d.ts +21 -0
  17. package/dist/decorators/agent.decorator.d.ts.map +1 -0
  18. package/dist/decorators/agent.decorator.js +38 -0
  19. package/dist/decorators/agent.decorator.js.map +1 -0
  20. package/dist/decorators/tool.decorator.d.ts +23 -0
  21. package/dist/decorators/tool.decorator.d.ts.map +1 -0
  22. package/dist/decorators/tool.decorator.js +61 -0
  23. package/dist/decorators/tool.decorator.js.map +1 -0
  24. package/dist/events/event.emitter.d.ts +45 -0
  25. package/dist/events/event.emitter.d.ts.map +1 -0
  26. package/dist/events/event.emitter.js +96 -0
  27. package/dist/events/event.emitter.js.map +1 -0
  28. package/dist/executor/agent.executor.d.ts +57 -0
  29. package/dist/executor/agent.executor.d.ts.map +1 -0
  30. package/dist/executor/agent.executor.js +303 -0
  31. package/dist/executor/agent.executor.js.map +1 -0
  32. package/dist/executor/tool.executor.d.ts +53 -0
  33. package/dist/executor/tool.executor.d.ts.map +1 -0
  34. package/dist/executor/tool.executor.js +234 -0
  35. package/dist/executor/tool.executor.js.map +1 -0
  36. package/dist/index.d.ts +30 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +46 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/registry/agent.registry.d.ts +49 -0
  41. package/dist/registry/agent.registry.d.ts.map +1 -0
  42. package/dist/registry/agent.registry.js +90 -0
  43. package/dist/registry/agent.registry.js.map +1 -0
  44. package/dist/registry/tool.registry.d.ts +54 -0
  45. package/dist/registry/tool.registry.d.ts.map +1 -0
  46. package/dist/registry/tool.registry.js +153 -0
  47. package/dist/registry/tool.registry.js.map +1 -0
  48. package/dist/runtime/agent.runtime.d.ts +155 -0
  49. package/dist/runtime/agent.runtime.d.ts.map +1 -0
  50. package/dist/runtime/agent.runtime.extensions.d.ts +49 -0
  51. package/dist/runtime/agent.runtime.extensions.d.ts.map +1 -0
  52. package/dist/runtime/agent.runtime.extensions.js +93 -0
  53. package/dist/runtime/agent.runtime.extensions.js.map +1 -0
  54. package/dist/runtime/agent.runtime.js +347 -0
  55. package/dist/runtime/agent.runtime.js.map +1 -0
  56. package/dist/state/agent-state.interface.d.ts +63 -0
  57. package/dist/state/agent-state.interface.d.ts.map +1 -0
  58. package/dist/state/agent-state.interface.js +7 -0
  59. package/dist/state/agent-state.interface.js.map +1 -0
  60. package/dist/state/agent.state.d.ts +67 -0
  61. package/dist/state/agent.state.d.ts.map +1 -0
  62. package/dist/state/agent.state.js +172 -0
  63. package/dist/state/agent.state.js.map +1 -0
  64. package/dist/state/database-state.manager.d.ts +63 -0
  65. package/dist/state/database-state.manager.d.ts.map +1 -0
  66. package/dist/state/database-state.manager.js +282 -0
  67. package/dist/state/database-state.manager.js.map +1 -0
  68. package/dist/state/redis-state.manager.d.ts +81 -0
  69. package/dist/state/redis-state.manager.d.ts.map +1 -0
  70. package/dist/state/redis-state.manager.js +253 -0
  71. package/dist/state/redis-state.manager.js.map +1 -0
  72. package/dist/types/agent.types.d.ts +151 -0
  73. package/dist/types/agent.types.d.ts.map +1 -0
  74. package/dist/types/agent.types.js +32 -0
  75. package/dist/types/agent.types.js.map +1 -0
  76. package/dist/types/event.types.d.ts +123 -0
  77. package/dist/types/event.types.d.ts.map +1 -0
  78. package/dist/types/event.types.js +30 -0
  79. package/dist/types/event.types.js.map +1 -0
  80. package/dist/types/llm.types.d.ts +66 -0
  81. package/dist/types/llm.types.d.ts.map +1 -0
  82. package/dist/types/llm.types.js +7 -0
  83. package/dist/types/llm.types.js.map +1 -0
  84. package/dist/types/rag.types.d.ts +40 -0
  85. package/dist/types/rag.types.d.ts.map +1 -0
  86. package/dist/types/rag.types.js +7 -0
  87. package/dist/types/rag.types.js.map +1 -0
  88. package/dist/types/tool.types.d.ts +118 -0
  89. package/dist/types/tool.types.d.ts.map +1 -0
  90. package/dist/types/tool.types.js +19 -0
  91. package/dist/types/tool.types.js.map +1 -0
  92. package/dist/utils/circuit-breaker.d.ts +69 -0
  93. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  94. package/dist/utils/circuit-breaker.js +156 -0
  95. package/dist/utils/circuit-breaker.js.map +1 -0
  96. package/dist/utils/health-check.d.ts +71 -0
  97. package/dist/utils/health-check.d.ts.map +1 -0
  98. package/dist/utils/health-check.js +156 -0
  99. package/dist/utils/health-check.js.map +1 -0
  100. package/dist/utils/logger.d.ts +53 -0
  101. package/dist/utils/logger.d.ts.map +1 -0
  102. package/dist/utils/logger.js +133 -0
  103. package/dist/utils/logger.js.map +1 -0
  104. package/dist/utils/metrics.d.ts +90 -0
  105. package/dist/utils/metrics.d.ts.map +1 -0
  106. package/dist/utils/metrics.js +186 -0
  107. package/dist/utils/metrics.js.map +1 -0
  108. package/dist/utils/rate-limiter.d.ts +44 -0
  109. package/dist/utils/rate-limiter.d.ts.map +1 -0
  110. package/dist/utils/rate-limiter.js +82 -0
  111. package/dist/utils/rate-limiter.js.map +1 -0
  112. package/dist/utils/retry.d.ts +42 -0
  113. package/dist/utils/retry.d.ts.map +1 -0
  114. package/dist/utils/retry.js +103 -0
  115. package/dist/utils/retry.js.map +1 -0
  116. package/package.json +58 -0
  117. package/prisma-schema.example.prisma +76 -0
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Runtime Extensions
4
+ * Additional methods for health checks, metrics, and monitoring
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentRuntimeExtensions = void 0;
8
+ /**
9
+ * Extended methods for AgentRuntime
10
+ */
11
+ class AgentRuntimeExtensions {
12
+ /**
13
+ * Get health check status
14
+ */
15
+ static async getHealthCheck(runtime) {
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ const healthChecker = runtime.healthChecker;
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ const metrics = runtime.metrics;
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ const config = runtime.config;
22
+ const metricsData = metrics
23
+ ? {
24
+ totalExecutions: metrics.getMetrics().executions.total,
25
+ successRate: metrics.getMetrics().executions.successRate,
26
+ averageLatency: metrics.getMetrics().performance.averageDuration,
27
+ }
28
+ : undefined;
29
+ return healthChecker.check(config.llmProvider, config.ragService, metricsData);
30
+ }
31
+ /**
32
+ * Get metrics summary
33
+ */
34
+ static getMetrics(runtime) {
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ const metrics = runtime.metrics;
37
+ return metrics ? metrics.getMetrics() : null;
38
+ }
39
+ /**
40
+ * Get metrics summary as string
41
+ */
42
+ static getMetricsSummary(runtime) {
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ const metrics = runtime.metrics;
45
+ return metrics ? metrics.getSummary() : 'Metrics not enabled';
46
+ }
47
+ /**
48
+ * Reset metrics
49
+ */
50
+ static resetMetrics(runtime) {
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ const metrics = runtime.metrics;
53
+ if (metrics) {
54
+ metrics.reset();
55
+ }
56
+ }
57
+ /**
58
+ * Get rate limiter status
59
+ */
60
+ static getRateLimiterStatus(runtime) {
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ const rateLimiter = runtime.rateLimiter;
63
+ return {
64
+ enabled: !!rateLimiter,
65
+ availableTokens: rateLimiter?.getAvailableTokens(),
66
+ };
67
+ }
68
+ /**
69
+ * Get circuit breaker status
70
+ */
71
+ static getCircuitBreakerStatus(runtime) {
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ const circuitBreaker = runtime.circuitBreaker;
74
+ return {
75
+ enabled: !!circuitBreaker,
76
+ state: circuitBreaker?.getState(),
77
+ failureCount: circuitBreaker?.getFailureCount(),
78
+ successCount: circuitBreaker?.getSuccessCount(),
79
+ };
80
+ }
81
+ /**
82
+ * Reset circuit breaker
83
+ */
84
+ static resetCircuitBreaker(runtime) {
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ const circuitBreaker = runtime.circuitBreaker;
87
+ if (circuitBreaker) {
88
+ circuitBreaker.reset();
89
+ }
90
+ }
91
+ }
92
+ exports.AgentRuntimeExtensions = AgentRuntimeExtensions;
93
+ //# sourceMappingURL=agent.runtime.extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.runtime.extensions.js","sourceRoot":"","sources":["../../src/runtime/agent.runtime.extensions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH;;GAEG;AACH,MAAa,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAqB;QAC/C,8DAA8D;QAC9D,MAAM,aAAa,GAAI,OAAe,CAAC,aAAa,CAAC;QACrD,8DAA8D;QAC9D,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,8DAA8D;QAC9D,MAAM,MAAM,GAAI,OAAe,CAAC,MAAM,CAAC;QAEvC,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC;gBACE,eAAe,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,KAAK;gBACtD,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,WAAW;gBACxD,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,eAAe;aACjE;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAqB;QACrC,8DAA8D;QAC9D,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAqB;QAC5C,8DAA8D;QAC9D,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAqB;QACvC,8DAA8D;QAC9D,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAqB;QAI/C,8DAA8D;QAC9D,MAAM,WAAW,GAAI,OAAe,CAAC,WAAW,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,WAAW;YACtB,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACnD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAqB;QAMlD,8DAA8D;QAC9D,MAAM,cAAc,GAAI,OAAe,CAAC,cAAc,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,cAAc;YACzB,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE;YACjC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE;YAC/C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAqB;QAC9C,8DAA8D;QAC9D,MAAM,cAAc,GAAI,OAAe,CAAC,cAAc,CAAC;QACvD,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAhGD,wDAgGC"}
@@ -0,0 +1,347 @@
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
+ /**
23
+ * Agent Runtime
24
+ * Central runtime for agent execution and lifecycle management
25
+ */
26
+ class AgentRuntime {
27
+ constructor(config = {}) {
28
+ this.config = {
29
+ defaultMaxSteps: 10,
30
+ defaultTimeout: 300000,
31
+ enableObservability: true,
32
+ enableMetrics: true,
33
+ enableRetry: true,
34
+ enableCircuitBreaker: true,
35
+ logLevel: logger_1.LogLevel.INFO,
36
+ ...config,
37
+ };
38
+ // Initialize logger
39
+ this.logger = new logger_1.Logger({ level: this.config.logLevel });
40
+ // Initialize rate limiter if configured
41
+ if (this.config.rateLimitPerMinute) {
42
+ this.rateLimiter = new rate_limiter_1.RateLimiter({
43
+ tokensPerMinute: this.config.rateLimitPerMinute,
44
+ });
45
+ this.logger.info('Rate limiter initialized', {
46
+ tokensPerMinute: this.config.rateLimitPerMinute,
47
+ });
48
+ }
49
+ // Initialize metrics collector if enabled
50
+ if (this.config.enableMetrics) {
51
+ this.metrics = new metrics_1.MetricsCollector();
52
+ this.logger.info('Metrics collector initialized');
53
+ }
54
+ // Initialize retry handler if enabled
55
+ if (this.config.enableRetry) {
56
+ this.retryHandler = new retry_1.RetryHandler({
57
+ maxRetries: 3,
58
+ initialDelayMs: 1000,
59
+ onRetry: (attempt, error) => {
60
+ this.logger.warn('Retrying operation', {
61
+ attempt,
62
+ error: error.message,
63
+ });
64
+ },
65
+ });
66
+ }
67
+ // Initialize circuit breaker if enabled
68
+ if (this.config.enableCircuitBreaker) {
69
+ this.circuitBreaker = new circuit_breaker_1.CircuitBreaker({
70
+ failureThreshold: 5,
71
+ successThreshold: 2,
72
+ resetTimeout: 30000,
73
+ onStateChange: (state) => {
74
+ this.logger.warn('Circuit breaker state changed', { state });
75
+ },
76
+ });
77
+ }
78
+ // Initialize health checker
79
+ this.healthChecker = new health_check_1.HealthChecker();
80
+ this.agentRegistry = new agent_registry_1.AgentRegistry();
81
+ this.toolRegistry = new tool_registry_1.ToolRegistry();
82
+ this.stateManager = config.stateManager || new agent_state_1.AgentStateManager();
83
+ this.contextBuilder = new agent_context_1.AgentContextBuilder(config.memoryManager);
84
+ this.eventEmitter = new event_emitter_1.AgentEventEmitter();
85
+ this.toolExecutor = new tool_executor_1.ToolExecutor((type, data) => {
86
+ this.eventEmitter.emit(type, '', '', data);
87
+ });
88
+ this.agentExecutor = new agent_executor_1.AgentExecutor(this.stateManager, this.contextBuilder, this.toolExecutor, this.toolRegistry, config.llmProvider, (type, executionId, data) => {
89
+ this.eventEmitter.emit(type, '', executionId, data);
90
+ });
91
+ this.logger.info('Agent runtime initialized', {
92
+ enableMetrics: this.config.enableMetrics,
93
+ enableRetry: this.config.enableRetry,
94
+ enableCircuitBreaker: this.config.enableCircuitBreaker,
95
+ });
96
+ }
97
+ /**
98
+ * Register an agent class
99
+ */
100
+ registerAgent(agentClass) {
101
+ this.agentRegistry.register(agentClass);
102
+ }
103
+ /**
104
+ * Register an agent instance
105
+ */
106
+ registerAgentInstance(agentName, instance) {
107
+ this.agentRegistry.registerInstance(agentName, instance);
108
+ this.toolRegistry.registerAgentTools(agentName, instance);
109
+ }
110
+ /**
111
+ * Execute an agent
112
+ */
113
+ async execute(agentName, input, options = {}) {
114
+ // Check rate limit
115
+ if (this.rateLimiter) {
116
+ const allowed = await this.rateLimiter.waitForToken(5000);
117
+ if (!allowed) {
118
+ this.logger.error('Rate limit exceeded', undefined, { agentName });
119
+ throw new Error('Rate limit exceeded - too many requests');
120
+ }
121
+ }
122
+ const startTime = Date.now();
123
+ let success = false;
124
+ try {
125
+ this.logger.info('Starting agent execution', {
126
+ agentName,
127
+ sessionId: options.sessionId,
128
+ userId: options.userId,
129
+ });
130
+ // Execute with retry and circuit breaker
131
+ const result = await this.executeWithProtection(agentName, input, options);
132
+ success = result.state === agent_types_1.AgentState.COMPLETED;
133
+ const duration = Date.now() - startTime;
134
+ // Record metrics
135
+ if (this.metrics) {
136
+ this.metrics.recordExecution(success, duration);
137
+ }
138
+ this.logger.info('Agent execution completed', {
139
+ agentName,
140
+ executionId: result.executionId,
141
+ state: result.state,
142
+ duration,
143
+ });
144
+ return result;
145
+ }
146
+ catch (error) {
147
+ const duration = Date.now() - startTime;
148
+ if (this.metrics) {
149
+ this.metrics.recordExecution(false, duration);
150
+ }
151
+ this.logger.error('Agent execution failed', error, {
152
+ agentName,
153
+ duration,
154
+ });
155
+ throw error;
156
+ }
157
+ }
158
+ /**
159
+ * Execute with retry and circuit breaker protection
160
+ */
161
+ async executeWithProtection(agentName, input, options) {
162
+ const executeFn = async () => {
163
+ const agent = this.agentRegistry.getAgent(agentName);
164
+ if (!agent) {
165
+ throw new Error(`Agent ${agentName} not found`);
166
+ }
167
+ const sessionId = options.sessionId || this.generateSessionId();
168
+ const maxSteps = options.maxSteps || this.config.defaultMaxSteps || 10;
169
+ const contextResult = this.stateManager.createContext(agentName, sessionId, input, options.userId, {
170
+ ...options.metadata,
171
+ systemPrompt: agent.systemPrompt,
172
+ agentDescription: agent.description,
173
+ });
174
+ const context = contextResult instanceof Promise ? await contextResult : contextResult;
175
+ if (options.enableMemory !== false && this.config.memoryManager) {
176
+ await this.contextBuilder.buildWithMemory(context);
177
+ }
178
+ if (options.enableRAG !== false && this.config.ragService) {
179
+ await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5);
180
+ }
181
+ if (options.initialContext) {
182
+ Object.assign(context.memory.workingMemory, options.initialContext);
183
+ }
184
+ const result = await this.agentExecutor.execute(context, maxSteps);
185
+ if (this.config.memoryManager) {
186
+ await this.contextBuilder.persistToMemory(context);
187
+ }
188
+ return result;
189
+ };
190
+ // Apply circuit breaker if enabled
191
+ if (this.circuitBreaker) {
192
+ const circuitBreakerFn = () => this.circuitBreaker.execute(executeFn);
193
+ // Apply retry if enabled
194
+ if (this.retryHandler) {
195
+ return this.retryHandler.execute(circuitBreakerFn);
196
+ }
197
+ return circuitBreakerFn();
198
+ }
199
+ // Apply retry only if circuit breaker is disabled
200
+ if (this.retryHandler) {
201
+ return this.retryHandler.execute(executeFn);
202
+ }
203
+ return executeFn();
204
+ }
205
+ /**
206
+ * Resume a paused execution
207
+ */
208
+ async resume(executionId, input) {
209
+ return this.agentExecutor.resume(executionId, input);
210
+ }
211
+ /**
212
+ * Get execution context
213
+ */
214
+ async getContext(executionId) {
215
+ const result = this.stateManager.getContext(executionId);
216
+ return result instanceof Promise ? await result : result;
217
+ }
218
+ /**
219
+ * Subscribe to agent events
220
+ */
221
+ on(type, handler) {
222
+ this.eventEmitter.on(type, handler);
223
+ }
224
+ /**
225
+ * Subscribe to all agent events
226
+ */
227
+ onAny(handler) {
228
+ this.eventEmitter.onAny(handler);
229
+ }
230
+ /**
231
+ * Unsubscribe from events
232
+ */
233
+ off(type, handler) {
234
+ this.eventEmitter.off(type, handler);
235
+ }
236
+ /**
237
+ * Get all registered agents
238
+ */
239
+ getAgents() {
240
+ return this.agentRegistry.getAllAgents().map((a) => a.name);
241
+ }
242
+ /**
243
+ * Get agent metadata
244
+ */
245
+ getAgentMetadata(agentName) {
246
+ return this.agentRegistry.getAgent(agentName);
247
+ }
248
+ /**
249
+ * Get health check status
250
+ */
251
+ async healthCheck() {
252
+ const metricsData = this.metrics
253
+ ? {
254
+ totalExecutions: this.metrics.getMetrics().executions.total,
255
+ successRate: this.metrics.getMetrics().executions.successRate,
256
+ averageLatency: this.metrics.getMetrics().performance.averageDuration,
257
+ }
258
+ : undefined;
259
+ return this.healthChecker.check(this.config.llmProvider, this.config.ragService, metricsData);
260
+ }
261
+ /**
262
+ * Get metrics
263
+ */
264
+ getMetrics() {
265
+ return this.metrics?.getMetrics();
266
+ }
267
+ /**
268
+ * Get metrics summary
269
+ */
270
+ getMetricsSummary() {
271
+ return this.metrics?.getSummary() || 'Metrics not enabled';
272
+ }
273
+ /**
274
+ * Reset metrics
275
+ */
276
+ resetMetrics() {
277
+ this.metrics?.reset();
278
+ }
279
+ /**
280
+ * Get rate limiter status
281
+ */
282
+ getRateLimiterStatus() {
283
+ return {
284
+ enabled: !!this.rateLimiter,
285
+ availableTokens: this.rateLimiter?.getAvailableTokens(),
286
+ };
287
+ }
288
+ /**
289
+ * Get circuit breaker status
290
+ */
291
+ getCircuitBreakerStatus() {
292
+ return {
293
+ enabled: !!this.circuitBreaker,
294
+ state: this.circuitBreaker?.getState(),
295
+ failureCount: this.circuitBreaker?.getFailureCount(),
296
+ successCount: this.circuitBreaker?.getSuccessCount(),
297
+ };
298
+ }
299
+ /**
300
+ * Reset circuit breaker
301
+ */
302
+ resetCircuitBreaker() {
303
+ this.circuitBreaker?.reset();
304
+ }
305
+ /**
306
+ * Get agent tools
307
+ */
308
+ getAgentTools(agentName) {
309
+ return this.toolRegistry.getAgentTools(agentName);
310
+ }
311
+ /**
312
+ * Approve a tool execution
313
+ */
314
+ approveToolExecution(requestId, approvedBy) {
315
+ this.toolExecutor.approveExecution(requestId, approvedBy);
316
+ }
317
+ /**
318
+ * Reject a tool execution
319
+ */
320
+ rejectToolExecution(requestId) {
321
+ this.toolExecutor.rejectExecution(requestId);
322
+ }
323
+ /**
324
+ * Get pending tool approvals
325
+ */
326
+ getPendingApprovals() {
327
+ return this.toolExecutor.getPendingApprovals();
328
+ }
329
+ /**
330
+ * Shutdown the runtime
331
+ */
332
+ async shutdown() {
333
+ const clearResult = this.stateManager.clear();
334
+ if (clearResult instanceof Promise) {
335
+ await clearResult;
336
+ }
337
+ this.eventEmitter.clear();
338
+ }
339
+ /**
340
+ * Generate a session ID
341
+ */
342
+ generateSessionId() {
343
+ return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
344
+ }
345
+ }
346
+ exports.AgentRuntime = AgentRuntime;
347
+ //# 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"}