@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,54 @@
1
+ /**
2
+ * Tool Registry
3
+ * Central registry for all tools in the system
4
+ */
5
+ import { ToolMetadata, ToolDefinition } from '../types/tool.types';
6
+ import { LLMToolDefinition } from '../types/llm.types';
7
+ /**
8
+ * Tool Registry - manages tool registration and lookup
9
+ */
10
+ export declare class ToolRegistry {
11
+ private tools;
12
+ private agentTools;
13
+ /**
14
+ * Register tools from an agent instance
15
+ */
16
+ registerAgentTools(agentName: string, agentInstance: unknown): void;
17
+ /**
18
+ * Get tool metadata by name
19
+ */
20
+ getTool(toolName: string): ToolMetadata | undefined;
21
+ /**
22
+ * Get all tools for an agent
23
+ */
24
+ getAgentTools(agentName: string): ToolMetadata[];
25
+ /**
26
+ * Get all registered tools
27
+ */
28
+ getAllTools(): ToolMetadata[];
29
+ /**
30
+ * Check if a tool is registered
31
+ */
32
+ hasTool(toolName: string): boolean;
33
+ /**
34
+ * Get tool definitions for LLM (OpenAI function calling format)
35
+ */
36
+ getToolDefinitions(agentName: string): ToolDefinition[];
37
+ /**
38
+ * Unregister all tools for an agent
39
+ */
40
+ unregisterAgentTools(agentName: string): void;
41
+ /**
42
+ * Clear all tools
43
+ */
44
+ clear(): void;
45
+ /**
46
+ * Get tool count
47
+ */
48
+ get count(): number;
49
+ /**
50
+ * Convert tool definitions to LLM format (OpenAI function calling)
51
+ */
52
+ getToolDefinitionsForLLM(agentName: string): LLMToolDefinition[];
53
+ }
54
+ //# sourceMappingURL=tool.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.registry.d.ts","sourceRoot":"","sources":["../../src/registry/tool.registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,UAAU,CAAuC;IAEzD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;IAuCnE;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAWhD;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IA2CvD;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU7C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,EAAE;CAYjE"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * Tool Registry
4
+ * Central registry for all tools in the system
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ToolRegistry = void 0;
8
+ const tool_decorator_1 = require("../decorators/tool.decorator");
9
+ /**
10
+ * Tool Registry - manages tool registration and lookup
11
+ */
12
+ class ToolRegistry {
13
+ constructor() {
14
+ this.tools = new Map();
15
+ this.agentTools = new Map();
16
+ }
17
+ /**
18
+ * Register tools from an agent instance
19
+ */
20
+ registerAgentTools(agentName, agentInstance) {
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ const agentClass = agentInstance.constructor;
23
+ const toolNames = (0, tool_decorator_1.getAgentTools)(agentClass);
24
+ if (toolNames.length === 0) {
25
+ return;
26
+ }
27
+ const agentToolSet = new Set();
28
+ for (const toolName of toolNames) {
29
+ const metadata = (0, tool_decorator_1.getToolMetadata)(agentInstance, toolName);
30
+ if (!metadata) {
31
+ // Tool metadata not found, skip
32
+ continue;
33
+ }
34
+ const fullToolName = `${agentName}.${toolName}`;
35
+ if (this.tools.has(fullToolName)) {
36
+ // Tool already registered, skip
37
+ continue;
38
+ }
39
+ // Update metadata to use the actual instance instead of prototype
40
+ const instanceMetadata = {
41
+ ...metadata,
42
+ target: agentInstance,
43
+ };
44
+ this.tools.set(fullToolName, instanceMetadata);
45
+ agentToolSet.add(fullToolName);
46
+ }
47
+ this.agentTools.set(agentName, agentToolSet);
48
+ }
49
+ /**
50
+ * Get tool metadata by name
51
+ */
52
+ getTool(toolName) {
53
+ return this.tools.get(toolName);
54
+ }
55
+ /**
56
+ * Get all tools for an agent
57
+ */
58
+ getAgentTools(agentName) {
59
+ const toolNames = this.agentTools.get(agentName);
60
+ if (!toolNames) {
61
+ return [];
62
+ }
63
+ return Array.from(toolNames)
64
+ .map((name) => this.tools.get(name))
65
+ .filter((tool) => tool !== undefined);
66
+ }
67
+ /**
68
+ * Get all registered tools
69
+ */
70
+ getAllTools() {
71
+ return Array.from(this.tools.values());
72
+ }
73
+ /**
74
+ * Check if a tool is registered
75
+ */
76
+ hasTool(toolName) {
77
+ return this.tools.has(toolName);
78
+ }
79
+ /**
80
+ * Get tool definitions for LLM (OpenAI function calling format)
81
+ */
82
+ getToolDefinitions(agentName) {
83
+ const tools = this.getAgentTools(agentName);
84
+ return tools.map((tool) => {
85
+ const properties = {};
86
+ const required = [];
87
+ if (tool.parameters) {
88
+ for (const param of tool.parameters) {
89
+ properties[param.name] = {
90
+ type: param.type,
91
+ description: param.description,
92
+ };
93
+ if (param.enum) {
94
+ properties[param.name].enum = param.enum;
95
+ }
96
+ if (param.required) {
97
+ required.push(param.name);
98
+ }
99
+ }
100
+ }
101
+ return {
102
+ name: tool.name,
103
+ description: tool.description,
104
+ parameters: {
105
+ type: 'object',
106
+ properties,
107
+ required,
108
+ },
109
+ };
110
+ });
111
+ }
112
+ /**
113
+ * Unregister all tools for an agent
114
+ */
115
+ unregisterAgentTools(agentName) {
116
+ const toolNames = this.agentTools.get(agentName);
117
+ if (toolNames) {
118
+ for (const toolName of toolNames) {
119
+ this.tools.delete(toolName);
120
+ }
121
+ this.agentTools.delete(agentName);
122
+ }
123
+ }
124
+ /**
125
+ * Clear all tools
126
+ */
127
+ clear() {
128
+ this.tools.clear();
129
+ this.agentTools.clear();
130
+ }
131
+ /**
132
+ * Get tool count
133
+ */
134
+ get count() {
135
+ return this.tools.size;
136
+ }
137
+ /**
138
+ * Convert tool definitions to LLM format (OpenAI function calling)
139
+ */
140
+ getToolDefinitionsForLLM(agentName) {
141
+ const tools = this.getToolDefinitions(agentName);
142
+ return tools.map((tool) => ({
143
+ type: 'function',
144
+ function: {
145
+ name: tool.name,
146
+ description: tool.description,
147
+ parameters: tool.parameters,
148
+ },
149
+ }));
150
+ }
151
+ }
152
+ exports.ToolRegistry = ToolRegistry;
153
+ //# sourceMappingURL=tool.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.registry.js","sourceRoot":"","sources":["../../src/registry/tool.registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Agent Runtime
3
+ * Main runtime for managing agent lifecycle and execution
4
+ */
5
+ import { IAgentStateManager } from '../state/agent-state.interface';
6
+ import { AgentExecutionOptions, AgentExecutionResult, AgentContext, IGuardrailsService } from '../types/agent.types';
7
+ import { AgentEventType } from '../types/event.types';
8
+ import { LLMProvider } from '../types/llm.types';
9
+ import { RAGService } from '../types/rag.types';
10
+ import { MemoryManager } from '@hazeljs/rag';
11
+ import { LogLevel } from '../utils/logger';
12
+ import { HealthCheckResult } from '../utils/health-check';
13
+ import { AgentGraph } from '../graph/agent-graph';
14
+ import { SupervisorAgent } from '../supervisor/supervisor';
15
+ import { SupervisorConfig } from '../graph/agent-graph.types';
16
+ /**
17
+ * Agent Runtime Configuration
18
+ */
19
+ export interface AgentRuntimeConfig {
20
+ stateManager?: IAgentStateManager;
21
+ memoryManager?: MemoryManager;
22
+ ragService?: RAGService;
23
+ llmProvider?: LLMProvider;
24
+ guardrailsService?: IGuardrailsService;
25
+ defaultMaxSteps?: number;
26
+ defaultTimeout?: number;
27
+ enableObservability?: boolean;
28
+ rateLimitPerMinute?: number;
29
+ enableMetrics?: boolean;
30
+ logLevel?: LogLevel;
31
+ enableRetry?: boolean;
32
+ enableCircuitBreaker?: boolean;
33
+ }
34
+ /**
35
+ * Agent Runtime
36
+ * Central runtime for agent execution and lifecycle management
37
+ */
38
+ export declare class AgentRuntime {
39
+ private agentRegistry;
40
+ private toolRegistry;
41
+ private stateManager;
42
+ private contextBuilder;
43
+ private toolExecutor;
44
+ private agentExecutor;
45
+ private eventEmitter;
46
+ private config;
47
+ private rateLimiter?;
48
+ private metrics?;
49
+ private logger;
50
+ private retryHandler?;
51
+ private circuitBreaker?;
52
+ private healthChecker;
53
+ constructor(config?: AgentRuntimeConfig);
54
+ /**
55
+ * Register an agent class
56
+ */
57
+ registerAgent(agentClass: new (...args: unknown[]) => unknown): void;
58
+ /**
59
+ * Register an agent instance.
60
+ * Also patches any @Delegate-decorated methods so they call the target agent
61
+ * via this runtime rather than executing the original (stub) method body.
62
+ */
63
+ registerAgentInstance(agentName: string, instance: unknown): void;
64
+ /**
65
+ * Replace @Delegate stub methods on an agent instance with real runtime calls.
66
+ * Called automatically by registerAgentInstance().
67
+ */
68
+ private patchDelegateMethods;
69
+ /**
70
+ * Execute an agent
71
+ */
72
+ execute(agentName: string, input: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
73
+ /**
74
+ * Execute with retry and circuit breaker protection
75
+ */
76
+ private executeWithProtection;
77
+ /**
78
+ * Resume a paused execution
79
+ */
80
+ resume(executionId: string, input?: string): Promise<AgentExecutionResult>;
81
+ /**
82
+ * Get execution context
83
+ */
84
+ getContext(executionId: string): Promise<AgentContext | undefined>;
85
+ /**
86
+ * Subscribe to agent events
87
+ */
88
+ on(type: AgentEventType, handler: (event: unknown) => void): void;
89
+ /**
90
+ * Subscribe to all agent events
91
+ */
92
+ onAny(handler: (event: unknown) => void): void;
93
+ /**
94
+ * Unsubscribe from events
95
+ */
96
+ off(type: AgentEventType, handler: (event: unknown) => void): void;
97
+ /**
98
+ * Get all registered agents
99
+ */
100
+ getAgents(): string[];
101
+ /**
102
+ * Get agent metadata
103
+ */
104
+ getAgentMetadata(agentName: string): import('../types/agent.types').AgentMetadata | undefined;
105
+ /**
106
+ * Get health check status
107
+ */
108
+ healthCheck(): Promise<HealthCheckResult>;
109
+ /**
110
+ * Get metrics
111
+ */
112
+ getMetrics(): import('../utils/metrics').AgentMetrics | undefined;
113
+ /**
114
+ * Get metrics summary
115
+ */
116
+ getMetricsSummary(): string;
117
+ /**
118
+ * Reset metrics
119
+ */
120
+ resetMetrics(): void;
121
+ /**
122
+ * Get rate limiter status
123
+ */
124
+ getRateLimiterStatus(): {
125
+ enabled: boolean;
126
+ availableTokens?: number;
127
+ };
128
+ /**
129
+ * Get circuit breaker status
130
+ */
131
+ getCircuitBreakerStatus(): {
132
+ enabled: boolean;
133
+ state?: string;
134
+ failureCount?: number;
135
+ successCount?: number;
136
+ };
137
+ /**
138
+ * Reset circuit breaker
139
+ */
140
+ resetCircuitBreaker(): void;
141
+ /**
142
+ * Get agent tools
143
+ */
144
+ getAgentTools(agentName: string): import('../types/tool.types').ToolMetadata[];
145
+ /**
146
+ * Approve a tool execution
147
+ */
148
+ approveToolExecution(requestId: string, approvedBy: string): void;
149
+ /**
150
+ * Reject a tool execution
151
+ */
152
+ rejectToolExecution(requestId: string): void;
153
+ /**
154
+ * Get pending tool approvals
155
+ */
156
+ getPendingApprovals(): import('../types/tool.types').ToolApprovalRequest[];
157
+ /**
158
+ * Create a new `AgentGraph` builder for this runtime.
159
+ *
160
+ * @param graphId A unique identifier for the graph (used in logs/events).
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * const graph = runtime.createGraph('research-pipeline')
165
+ * .addNode('researcher', { type: 'agent', agentName: 'ResearchAgent' })
166
+ * .addNode('writer', { type: 'agent', agentName: 'WriterAgent' })
167
+ * .addEdge('researcher', 'writer')
168
+ * .addEdge('writer', '__end__')
169
+ * .setEntryPoint('researcher')
170
+ * .compile();
171
+ *
172
+ * const result = await graph.execute('Write an article about LLMs');
173
+ * ```
174
+ */
175
+ createGraph(graphId: string): AgentGraph;
176
+ /**
177
+ * Create a `SupervisorAgent` that orchestrates a team of worker agents.
178
+ *
179
+ * Requires an LLM provider to be configured on the runtime.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * const supervisor = runtime.createSupervisor({
184
+ * name: 'project-manager',
185
+ * workers: ['ResearchAgent', 'CoderAgent', 'WriterAgent'],
186
+ * maxRounds: 6,
187
+ * });
188
+ *
189
+ * const result = await supervisor.run('Build a REST API for a todo app');
190
+ * console.log(result.response);
191
+ * ```
192
+ */
193
+ createSupervisor(config: SupervisorConfig): SupervisorAgent;
194
+ /**
195
+ * Dynamically spawn a new agent execution and return its result.
196
+ * Useful inside @Tool methods when one agent needs to call another.
197
+ *
198
+ * @example
199
+ * ```ts
200
+ * @Tool({ description: 'Research and summarize a topic' })
201
+ * async researchAndSummarize(topic: string) {
202
+ * const research = await this.runtime.spawn('ResearchAgent', topic);
203
+ * const summary = await this.runtime.spawn('SummaryAgent', research.response ?? '');
204
+ * return summary.response;
205
+ * }
206
+ * ```
207
+ */
208
+ spawn(agentName: string, input: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
209
+ /**
210
+ * Shutdown the runtime
211
+ */
212
+ shutdown(): Promise<void>;
213
+ /**
214
+ * Generate a session ID
215
+ */
216
+ private generateSessionId;
217
+ }
218
+ //# sourceMappingURL=agent.runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Agent Runtime Extensions
3
+ * Additional methods for health checks, metrics, and monitoring
4
+ */
5
+ import { AgentRuntime } from './agent.runtime';
6
+ import { HealthCheckResult } from '../utils/health-check';
7
+ import { AgentMetrics } from '../utils/metrics';
8
+ /**
9
+ * Extended methods for AgentRuntime
10
+ */
11
+ export declare class AgentRuntimeExtensions {
12
+ /**
13
+ * Get health check status
14
+ */
15
+ static getHealthCheck(runtime: AgentRuntime): Promise<HealthCheckResult>;
16
+ /**
17
+ * Get metrics summary
18
+ */
19
+ static getMetrics(runtime: AgentRuntime): AgentMetrics | null;
20
+ /**
21
+ * Get metrics summary as string
22
+ */
23
+ static getMetricsSummary(runtime: AgentRuntime): string;
24
+ /**
25
+ * Reset metrics
26
+ */
27
+ static resetMetrics(runtime: AgentRuntime): void;
28
+ /**
29
+ * Get rate limiter status
30
+ */
31
+ static getRateLimiterStatus(runtime: AgentRuntime): {
32
+ enabled: boolean;
33
+ availableTokens?: number;
34
+ };
35
+ /**
36
+ * Get circuit breaker status
37
+ */
38
+ static getCircuitBreakerStatus(runtime: AgentRuntime): {
39
+ enabled: boolean;
40
+ state?: string;
41
+ failureCount?: number;
42
+ successCount?: number;
43
+ };
44
+ /**
45
+ * Reset circuit breaker
46
+ */
47
+ static resetCircuitBreaker(runtime: AgentRuntime): void;
48
+ }
49
+ //# sourceMappingURL=agent.runtime.extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.runtime.extensions.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.runtime.extensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;WACU,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmB9E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI;IAM7D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAMvD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAQhD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG;QAClD,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IASD;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG;QACrD,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAWD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;CAOxD"}
@@ -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"}