@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.
- package/IMPLEMENTATION_SUMMARY.md +400 -0
- package/LICENSE +192 -0
- package/PERSISTENCE.md +201 -0
- package/PRISMA_INTEGRATION.md +499 -0
- package/PRODUCTION_READINESS.md +264 -0
- package/QUICKSTART.md +135 -0
- package/README.md +541 -0
- package/STATE_VS_MEMORY.md +243 -0
- package/benchmarks/performance.benchmark.ts +157 -0
- package/coverage/clover.xml +1508 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +296 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +2722 -0
- package/dist/agent.module.d.ts +57 -0
- package/dist/agent.module.d.ts.map +1 -0
- package/dist/agent.module.js +99 -0
- package/dist/agent.module.js.map +1 -0
- package/dist/context/agent.context.d.ts +27 -0
- package/dist/context/agent.context.d.ts.map +1 -0
- package/dist/context/agent.context.js +98 -0
- package/dist/context/agent.context.js.map +1 -0
- package/dist/decorators/agent.decorator.d.ts +21 -0
- package/dist/decorators/agent.decorator.d.ts.map +1 -0
- package/dist/decorators/agent.decorator.js +38 -0
- package/dist/decorators/agent.decorator.js.map +1 -0
- package/dist/decorators/delegate.decorator.d.ts +66 -0
- package/dist/decorators/delegate.decorator.d.ts.map +1 -0
- package/dist/decorators/delegate.decorator.js +108 -0
- package/dist/decorators/delegate.decorator.js.map +1 -0
- package/dist/decorators/tool.decorator.d.ts +23 -0
- package/dist/decorators/tool.decorator.d.ts.map +1 -0
- package/dist/decorators/tool.decorator.js +61 -0
- package/dist/decorators/tool.decorator.js.map +1 -0
- package/dist/events/event.emitter.d.ts +45 -0
- package/dist/events/event.emitter.d.ts.map +1 -0
- package/dist/events/event.emitter.js +96 -0
- package/dist/events/event.emitter.js.map +1 -0
- package/dist/executor/agent.executor.d.ts +58 -0
- package/dist/executor/agent.executor.d.ts.map +1 -0
- package/dist/executor/agent.executor.js +312 -0
- package/dist/executor/agent.executor.js.map +1 -0
- package/dist/executor/tool.executor.d.ts +55 -0
- package/dist/executor/tool.executor.d.ts.map +1 -0
- package/dist/executor/tool.executor.js +266 -0
- package/dist/executor/tool.executor.js.map +1 -0
- package/dist/graph/agent-graph.d.ts +131 -0
- package/dist/graph/agent-graph.d.ts.map +1 -0
- package/dist/graph/agent-graph.js +462 -0
- package/dist/graph/agent-graph.js.map +1 -0
- package/dist/graph/agent-graph.types.d.ts +210 -0
- package/dist/graph/agent-graph.types.d.ts.map +1 -0
- package/dist/graph/agent-graph.types.js +12 -0
- package/dist/graph/agent-graph.types.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/agent-system.prompt.d.ts +10 -0
- package/dist/prompts/agent-system.prompt.d.ts.map +1 -0
- package/dist/prompts/agent-system.prompt.js +18 -0
- package/dist/prompts/agent-system.prompt.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +20 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/supervisor-routing.prompt.d.ts +9 -0
- package/dist/prompts/supervisor-routing.prompt.d.ts.map +1 -0
- package/dist/prompts/supervisor-routing.prompt.js +22 -0
- package/dist/prompts/supervisor-routing.prompt.js.map +1 -0
- package/dist/prompts/supervisor-system.prompt.d.ts +9 -0
- package/dist/prompts/supervisor-system.prompt.d.ts.map +1 -0
- package/dist/prompts/supervisor-system.prompt.js +21 -0
- package/dist/prompts/supervisor-system.prompt.js.map +1 -0
- package/dist/registry/agent.registry.d.ts +49 -0
- package/dist/registry/agent.registry.d.ts.map +1 -0
- package/dist/registry/agent.registry.js +90 -0
- package/dist/registry/agent.registry.js.map +1 -0
- package/dist/registry/tool.registry.d.ts +54 -0
- package/dist/registry/tool.registry.d.ts.map +1 -0
- package/dist/registry/tool.registry.js +153 -0
- package/dist/registry/tool.registry.js.map +1 -0
- package/dist/runtime/agent.runtime.d.ts +218 -0
- package/dist/runtime/agent.runtime.d.ts.map +1 -0
- package/dist/runtime/agent.runtime.extensions.d.ts +49 -0
- package/dist/runtime/agent.runtime.extensions.d.ts.map +1 -0
- package/dist/runtime/agent.runtime.extensions.js +93 -0
- package/dist/runtime/agent.runtime.extensions.js.map +1 -0
- package/dist/runtime/agent.runtime.js +448 -0
- package/dist/runtime/agent.runtime.js.map +1 -0
- package/dist/state/agent-state.interface.d.ts +63 -0
- package/dist/state/agent-state.interface.d.ts.map +1 -0
- package/dist/state/agent-state.interface.js +7 -0
- package/dist/state/agent-state.interface.js.map +1 -0
- package/dist/state/agent.state.d.ts +67 -0
- package/dist/state/agent.state.d.ts.map +1 -0
- package/dist/state/agent.state.js +172 -0
- package/dist/state/agent.state.js.map +1 -0
- package/dist/state/database-state.manager.d.ts +63 -0
- package/dist/state/database-state.manager.d.ts.map +1 -0
- package/dist/state/database-state.manager.js +282 -0
- package/dist/state/database-state.manager.js.map +1 -0
- package/dist/state/redis-state.manager.d.ts +81 -0
- package/dist/state/redis-state.manager.d.ts.map +1 -0
- package/dist/state/redis-state.manager.js +253 -0
- package/dist/state/redis-state.manager.js.map +1 -0
- package/dist/supervisor/supervisor.d.ts +81 -0
- package/dist/supervisor/supervisor.d.ts.map +1 -0
- package/dist/supervisor/supervisor.js +220 -0
- package/dist/supervisor/supervisor.js.map +1 -0
- package/dist/types/agent.types.d.ts +166 -0
- package/dist/types/agent.types.d.ts.map +1 -0
- package/dist/types/agent.types.js +32 -0
- package/dist/types/agent.types.js.map +1 -0
- package/dist/types/event.types.d.ts +198 -0
- package/dist/types/event.types.d.ts.map +1 -0
- package/dist/types/event.types.js +46 -0
- package/dist/types/event.types.js.map +1 -0
- package/dist/types/llm.types.d.ts +66 -0
- package/dist/types/llm.types.d.ts.map +1 -0
- package/dist/types/llm.types.js +7 -0
- package/dist/types/llm.types.js.map +1 -0
- package/dist/types/rag.types.d.ts +40 -0
- package/dist/types/rag.types.d.ts.map +1 -0
- package/dist/types/rag.types.js +7 -0
- package/dist/types/rag.types.js.map +1 -0
- package/dist/types/tool.types.d.ts +118 -0
- package/dist/types/tool.types.d.ts.map +1 -0
- package/dist/types/tool.types.js +19 -0
- package/dist/types/tool.types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +9 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +16 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/health-check.d.ts +71 -0
- package/dist/utils/health-check.d.ts.map +1 -0
- package/dist/utils/health-check.js +156 -0
- package/dist/utils/health-check.js.map +1 -0
- package/dist/utils/logger.d.ts +53 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +133 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/metrics.d.ts +90 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +186 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +44 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +82 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/retry.d.ts +42 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +103 -0
- package/dist/utils/retry.js.map +1 -0
- package/jest.config.js +30 -0
- package/logs/combined.log +1 -0
- package/logs/error.log +0 -0
- package/package.json +74 -0
- package/prisma-schema.example.prisma +76 -0
- package/tests/setup.ts +17 -0
- 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"}
|