@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,90 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Module
4
+ * HazelJS module for Agent Runtime
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ var __metadata = (this && this.__metadata) || function (k, v) {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14
+ };
15
+ var AgentModule_1;
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AgentModule = exports.AgentService = void 0;
18
+ const core_1 = require("@hazeljs/core");
19
+ const agent_runtime_1 = require("./runtime/agent.runtime");
20
+ /**
21
+ * Agent Service
22
+ * Injectable service for agent runtime
23
+ */
24
+ let AgentService = class AgentService {
25
+ constructor(config = {}) {
26
+ const moduleOpts = AgentModule.getOptions();
27
+ const runtimeConfig = moduleOpts.runtime || config;
28
+ this.runtime = new agent_runtime_1.AgentRuntime(runtimeConfig);
29
+ // Register agents from module options
30
+ if (moduleOpts.agents) {
31
+ for (const agentClass of moduleOpts.agents) {
32
+ this.runtime.registerAgent(agentClass);
33
+ }
34
+ }
35
+ }
36
+ getRuntime() {
37
+ return this.runtime;
38
+ }
39
+ async execute(agentName, input, options) {
40
+ return this.runtime.execute(agentName, input, options);
41
+ }
42
+ async resume(executionId, input) {
43
+ return this.runtime.resume(executionId, input);
44
+ }
45
+ getContext(executionId) {
46
+ return this.runtime.getContext(executionId);
47
+ }
48
+ on(type, handler) {
49
+ return this.runtime.on(type, handler);
50
+ }
51
+ getAgents() {
52
+ return this.runtime.getAgents();
53
+ }
54
+ approveToolExecution(requestId, approvedBy) {
55
+ return this.runtime.approveToolExecution(requestId, approvedBy);
56
+ }
57
+ rejectToolExecution(requestId) {
58
+ return this.runtime.rejectToolExecution(requestId);
59
+ }
60
+ getPendingApprovals() {
61
+ return this.runtime.getPendingApprovals();
62
+ }
63
+ };
64
+ exports.AgentService = AgentService;
65
+ exports.AgentService = AgentService = __decorate([
66
+ (0, core_1.Injectable)(),
67
+ __metadata("design:paramtypes", [Object])
68
+ ], AgentService);
69
+ /**
70
+ * Agent Module
71
+ * Uses static configuration pattern compatible with HazelJS DI
72
+ */
73
+ let AgentModule = AgentModule_1 = class AgentModule {
74
+ static forRoot(options = {}) {
75
+ AgentModule_1.options = options;
76
+ return AgentModule_1;
77
+ }
78
+ static getOptions() {
79
+ return AgentModule_1.options;
80
+ }
81
+ };
82
+ exports.AgentModule = AgentModule;
83
+ AgentModule.options = {};
84
+ exports.AgentModule = AgentModule = AgentModule_1 = __decorate([
85
+ (0, core_1.HazelModule)({
86
+ providers: [AgentService],
87
+ exports: [AgentService],
88
+ })
89
+ ], AgentModule);
90
+ //# sourceMappingURL=agent.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.module.js","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,wCAAwD;AACxD,2DAA2E;AAa3E;;;GAGG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YAAY,SAA6B,EAAE;QACzC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,4BAAY,CAAC,aAAa,CAAC,CAAC;QAE/C,sCAAsC;QACtC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,SAAiB,EACjB,KAAa,EACb,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,KAAc;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,EAAE,CAAC,IAAoB,EAAE,OAAiC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,UAAkB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,mBAAmB,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAvDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,iBAAU,GAAE;;GACA,YAAY,CAuDxB;AAED;;;GAGG;AAKI,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAGtB,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,aAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,OAAO,aAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,UAAU;QACf,OAAO,aAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;;AAVU,kCAAW;AACP,mBAAO,GAAuB,EAAE,AAAzB,CAA0B;sBADrC,WAAW;IAJvB,IAAA,kBAAW,EAAC;QACX,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAWvB"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Agent Context Builder
3
+ * Builds execution context with memory and RAG integration
4
+ */
5
+ import { AgentContext } from '../types/agent.types';
6
+ import { MemoryManager } from '@hazeljs/rag';
7
+ /**
8
+ * Agent Context Builder
9
+ * Prepares context for agent execution
10
+ */
11
+ export declare class AgentContextBuilder {
12
+ private memoryManager?;
13
+ constructor(memoryManager?: MemoryManager | undefined);
14
+ /**
15
+ * Build context with memory
16
+ */
17
+ buildWithMemory(context: AgentContext, maxHistory?: number): Promise<void>;
18
+ /**
19
+ * Build context with RAG
20
+ */
21
+ buildWithRAG(context: AgentContext, ragService: any, topK?: number): Promise<void>;
22
+ /**
23
+ * Persist context to memory
24
+ */
25
+ persistToMemory(context: AgentContext): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=agent.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.context.d.ts","sourceRoot":"","sources":["../../src/context/agent.context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAE9D;;;GAGG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,aAAa,CAAC;gBAAd,aAAa,CAAC,EAAE,aAAa,YAAA;IAEjD;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpF;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,YAAY,EAErB,UAAU,EAAE,GAAG,EACf,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAyC5D"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Context Builder
4
+ * Builds execution context with memory and RAG integration
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentContextBuilder = void 0;
8
+ /**
9
+ * Agent Context Builder
10
+ * Prepares context for agent execution
11
+ */
12
+ class AgentContextBuilder {
13
+ constructor(memoryManager) {
14
+ this.memoryManager = memoryManager;
15
+ }
16
+ /**
17
+ * Build context with memory
18
+ */
19
+ async buildWithMemory(context, maxHistory = 20) {
20
+ if (!this.memoryManager) {
21
+ return;
22
+ }
23
+ const history = await this.memoryManager.getConversationHistory(context.sessionId, maxHistory);
24
+ context.memory.conversationHistory = history.map((msg) => ({
25
+ role: msg.role,
26
+ content: msg.content,
27
+ timestamp: msg.timestamp || new Date(),
28
+ }));
29
+ const entities = await this.memoryManager.getAllEntities(context.sessionId);
30
+ context.memory.entities = entities.map((entity) => ({
31
+ name: entity.name,
32
+ type: entity.type,
33
+ attributes: entity.attributes,
34
+ }));
35
+ const workingMemoryKeys = ['current_task', 'user_preferences', 'session_state'];
36
+ for (const key of workingMemoryKeys) {
37
+ const value = await this.memoryManager.getContext(key, context.sessionId);
38
+ if (value !== null) {
39
+ context.memory.workingMemory[key] = value;
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Build context with RAG
45
+ */
46
+ async buildWithRAG(context,
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ ragService, topK = 5) {
49
+ if (!ragService) {
50
+ return;
51
+ }
52
+ try {
53
+ const results = await ragService.search(context.input, { topK });
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+ context.ragContext = results.map((r) => r.content || r.text);
56
+ }
57
+ catch {
58
+ context.ragContext = [];
59
+ }
60
+ }
61
+ /**
62
+ * Persist context to memory
63
+ */
64
+ async persistToMemory(context) {
65
+ if (!this.memoryManager) {
66
+ return;
67
+ }
68
+ for (const msg of context.memory.conversationHistory) {
69
+ await this.memoryManager.addMessage({
70
+ role: msg.role,
71
+ content: msg.content,
72
+ timestamp: msg.timestamp,
73
+ }, context.sessionId, context.userId);
74
+ }
75
+ for (const [key, value] of Object.entries(context.memory.workingMemory)) {
76
+ await this.memoryManager.setContext(key, value, context.sessionId);
77
+ }
78
+ for (const entity of context.memory.entities) {
79
+ const existingEntity = await this.memoryManager.getEntity(entity.name);
80
+ if (existingEntity) {
81
+ await this.memoryManager.updateEntity(entity.name, entity);
82
+ }
83
+ else {
84
+ await this.memoryManager.trackEntity({
85
+ name: entity.name,
86
+ type: entity.type,
87
+ attributes: entity.attributes,
88
+ relationships: [],
89
+ firstSeen: new Date(),
90
+ lastSeen: new Date(),
91
+ mentions: 1,
92
+ }, context.sessionId);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ exports.AgentContextBuilder = AgentContextBuilder;
98
+ //# sourceMappingURL=agent.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.context.js","sourceRoot":"","sources":["../../src/context/agent.context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @Agent Decorator
3
+ * Marks a class as an Agent with configuration
4
+ */
5
+ import 'reflect-metadata';
6
+ import { AgentConfig, AgentMetadata } from '../types/agent.types';
7
+ type NewableFunction = new (...args: unknown[]) => unknown;
8
+ /**
9
+ * Agent decorator - marks a class as an agent
10
+ */
11
+ export declare function Agent(config: AgentConfig): ClassDecorator;
12
+ /**
13
+ * Get agent metadata from a class
14
+ */
15
+ export declare function getAgentMetadata(target: NewableFunction): AgentMetadata | undefined;
16
+ /**
17
+ * Check if a class is an agent
18
+ */
19
+ export declare function isAgent(target: NewableFunction): boolean;
20
+ export {};
21
+ //# sourceMappingURL=agent.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/agent.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAI3D;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAWzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS,CAEnF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAExD"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * @Agent Decorator
4
+ * Marks a class as an Agent with configuration
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Agent = Agent;
8
+ exports.getAgentMetadata = getAgentMetadata;
9
+ exports.isAgent = isAgent;
10
+ require("reflect-metadata");
11
+ const AGENT_METADATA_KEY = Symbol('agent');
12
+ /**
13
+ * Agent decorator - marks a class as an agent
14
+ */
15
+ function Agent(config) {
16
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
17
+ return ((target) => {
18
+ const metadata = {
19
+ ...config,
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
21
+ target: target,
22
+ };
23
+ Reflect.defineMetadata(AGENT_METADATA_KEY, metadata, target);
24
+ });
25
+ }
26
+ /**
27
+ * Get agent metadata from a class
28
+ */
29
+ function getAgentMetadata(target) {
30
+ return Reflect.getMetadata(AGENT_METADATA_KEY, target);
31
+ }
32
+ /**
33
+ * Check if a class is an agent
34
+ */
35
+ function isAgent(target) {
36
+ return Reflect.hasMetadata(AGENT_METADATA_KEY, target);
37
+ }
38
+ //# sourceMappingURL=agent.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.decorator.js","sourceRoot":"","sources":["../../src/decorators/agent.decorator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,sBAWC;AAKD,4CAEC;AAKD,0BAEC;AAnCD,4BAA0B;AAK1B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE3C;;GAEG;AACH,SAAgB,KAAK,CAAC,MAAmB;IACvC,sEAAsE;IACtE,OAAO,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAkB;YAC9B,GAAG,MAAM;YACT,sEAAsE;YACtE,MAAM,EAAE,MAAyB;SAClC,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAAuB;IAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @Tool Decorator
3
+ * Marks a method as a tool that can be used by agents
4
+ */
5
+ import 'reflect-metadata';
6
+ import { ToolConfig, ToolMetadata } from '../types/tool.types';
7
+ /**
8
+ * Tool decorator - marks a method as a tool
9
+ */
10
+ export declare function Tool(config?: Partial<ToolConfig>): MethodDecorator;
11
+ /**
12
+ * Get tool metadata from a method
13
+ */
14
+ export declare function getToolMetadata(target: object, propertyKey: string): ToolMetadata | undefined;
15
+ /**
16
+ * Get all tools from an agent class
17
+ */
18
+ export declare function getAgentTools(agentClass: new (...args: unknown[]) => unknown): string[];
19
+ /**
20
+ * Check if a method is a tool
21
+ */
22
+ export declare function isTool(target: object, propertyKey: string): boolean;
23
+ //# sourceMappingURL=tool.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/tool.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAK/D;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,CA6BlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,MAAM,EAAE,CAEvF;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * @Tool Decorator
4
+ * Marks a method as a tool that can be used by agents
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Tool = Tool;
8
+ exports.getToolMetadata = getToolMetadata;
9
+ exports.getAgentTools = getAgentTools;
10
+ exports.isTool = isTool;
11
+ require("reflect-metadata");
12
+ const TOOL_METADATA_KEY = Symbol('tool');
13
+ const TOOLS_LIST_KEY = Symbol('tools');
14
+ /**
15
+ * Tool decorator - marks a method as a tool
16
+ */
17
+ function Tool(config) {
18
+ return (target, propertyKey, descriptor) => {
19
+ const methodName = String(propertyKey);
20
+ const metadata = {
21
+ name: config?.name || methodName,
22
+ description: config?.description || `Tool: ${methodName}`,
23
+ parameters: config?.parameters || [],
24
+ requiresApproval: config?.requiresApproval || false,
25
+ timeout: config?.timeout || 30000,
26
+ retries: config?.retries || 0,
27
+ policy: config?.policy,
28
+ metadata: config?.metadata,
29
+ target,
30
+ propertyKey: methodName,
31
+ method: descriptor.value,
32
+ agentClass: target.constructor,
33
+ };
34
+ Reflect.defineMetadata(TOOL_METADATA_KEY, metadata, target, propertyKey);
35
+ const existingTools = Reflect.getMetadata(TOOLS_LIST_KEY, target.constructor) || [];
36
+ if (!existingTools.includes(methodName)) {
37
+ existingTools.push(methodName);
38
+ Reflect.defineMetadata(TOOLS_LIST_KEY, existingTools, target.constructor);
39
+ }
40
+ return descriptor;
41
+ };
42
+ }
43
+ /**
44
+ * Get tool metadata from a method
45
+ */
46
+ function getToolMetadata(target, propertyKey) {
47
+ return Reflect.getMetadata(TOOL_METADATA_KEY, target, propertyKey);
48
+ }
49
+ /**
50
+ * Get all tools from an agent class
51
+ */
52
+ function getAgentTools(agentClass) {
53
+ return Reflect.getMetadata(TOOLS_LIST_KEY, agentClass) || [];
54
+ }
55
+ /**
56
+ * Check if a method is a tool
57
+ */
58
+ function isTool(target, propertyKey) {
59
+ return Reflect.hasMetadata(TOOL_METADATA_KEY, target, propertyKey);
60
+ }
61
+ //# sourceMappingURL=tool.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.js","sourceRoot":"","sources":["../../src/decorators/tool.decorator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,oBA6BC;AAKD,0CAEC;AAKD,sCAEC;AAKD,wBAEC;AA3DD,4BAA0B;AAG1B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACzC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAEvC;;GAEG;AACH,SAAgB,IAAI,CAAC,MAA4B;IAC/C,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAiB;YAC7B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,UAAU;YAChC,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,SAAS,UAAU,EAAE;YACzD,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE;YACpC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,KAAK;YACnD,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;YACjC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;YAC7B,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,QAAQ,EAAE,MAAM,EAAE,QAAQ;YAC1B,MAAM;YACN,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,WAAkD;SACtE,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAa,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAc,EAAE,WAAmB;IACjE,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,UAA+C;IAC3E,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,MAAc,EAAE,WAAmB;IACxD,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Agent Event Emitter
3
+ * Handles event emission and subscription for agent runtime
4
+ */
5
+ import { AgentEvent, AgentEventType } from '../types/event.types';
6
+ type EventHandler<T = unknown> = (event: AgentEvent<T>) => void | Promise<void>;
7
+ /**
8
+ * Agent Event Emitter
9
+ * Pub/sub system for agent runtime events
10
+ */
11
+ export declare class AgentEventEmitter {
12
+ private handlers;
13
+ private wildcardHandlers;
14
+ private logger;
15
+ /**
16
+ * Subscribe to an event type
17
+ */
18
+ on<T = unknown>(type: AgentEventType, handler: EventHandler<T>): void;
19
+ /**
20
+ * Subscribe to all events
21
+ */
22
+ onAny(handler: EventHandler): void;
23
+ /**
24
+ * Unsubscribe from an event type
25
+ */
26
+ off(type: AgentEventType, handler: EventHandler): void;
27
+ /**
28
+ * Unsubscribe from all events
29
+ */
30
+ offAny(handler: EventHandler): void;
31
+ /**
32
+ * Emit an event
33
+ */
34
+ emit<T = unknown>(type: AgentEventType, agentId: string, executionId: string, data: T, metadata?: Record<string, unknown>): Promise<void>;
35
+ /**
36
+ * Clear all handlers
37
+ */
38
+ clear(): void;
39
+ /**
40
+ * Get handler count for an event type
41
+ */
42
+ listenerCount(type: AgentEventType): number;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=event.emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.emitter.d.ts","sourceRoot":"","sources":["../../src/events/event.emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGlE,KAAK,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqD;IACrE,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAwC;IAEtD;;OAEG;IACH,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAOrE;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAOtD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInC;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,EACP,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;IAsChB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;CAG5C"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Event Emitter
4
+ * Handles event emission and subscription for agent runtime
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentEventEmitter = void 0;
8
+ const logger_1 = require("../utils/logger");
9
+ /**
10
+ * Agent Event Emitter
11
+ * Pub/sub system for agent runtime events
12
+ */
13
+ class AgentEventEmitter {
14
+ constructor() {
15
+ this.handlers = new Map();
16
+ this.wildcardHandlers = new Set();
17
+ this.logger = new logger_1.Logger({ level: logger_1.LogLevel.WARN });
18
+ }
19
+ /**
20
+ * Subscribe to an event type
21
+ */
22
+ on(type, handler) {
23
+ if (!this.handlers.has(type)) {
24
+ this.handlers.set(type, new Set());
25
+ }
26
+ this.handlers.get(type).add(handler);
27
+ }
28
+ /**
29
+ * Subscribe to all events
30
+ */
31
+ onAny(handler) {
32
+ this.wildcardHandlers.add(handler);
33
+ }
34
+ /**
35
+ * Unsubscribe from an event type
36
+ */
37
+ off(type, handler) {
38
+ const handlers = this.handlers.get(type);
39
+ if (handlers) {
40
+ handlers.delete(handler);
41
+ }
42
+ }
43
+ /**
44
+ * Unsubscribe from all events
45
+ */
46
+ offAny(handler) {
47
+ this.wildcardHandlers.delete(handler);
48
+ }
49
+ /**
50
+ * Emit an event
51
+ */
52
+ async emit(type, agentId, executionId, data, metadata) {
53
+ const event = {
54
+ type,
55
+ agentId,
56
+ executionId,
57
+ timestamp: new Date(),
58
+ data,
59
+ metadata,
60
+ };
61
+ const handlers = this.handlers.get(type);
62
+ if (handlers) {
63
+ for (const handler of handlers) {
64
+ try {
65
+ await handler(event);
66
+ }
67
+ catch (error) {
68
+ this.logger.error(`Error in event handler for ${type}`, error instanceof Error ? error : new Error(String(error)), { executionId });
69
+ }
70
+ }
71
+ }
72
+ for (const handler of this.wildcardHandlers) {
73
+ try {
74
+ await handler(event);
75
+ }
76
+ catch (error) {
77
+ this.logger.error(`Error in wildcard event handler for ${type}`, error instanceof Error ? error : new Error(String(error)), { executionId });
78
+ }
79
+ }
80
+ }
81
+ /**
82
+ * Clear all handlers
83
+ */
84
+ clear() {
85
+ this.handlers.clear();
86
+ this.wildcardHandlers.clear();
87
+ }
88
+ /**
89
+ * Get handler count for an event type
90
+ */
91
+ listenerCount(type) {
92
+ return this.handlers.get(type)?.size || 0;
93
+ }
94
+ }
95
+ exports.AgentEventEmitter = AgentEventEmitter;
96
+ //# sourceMappingURL=event.emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.emitter.js","sourceRoot":"","sources":["../../src/events/event.emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Agent Executor
3
+ * Core execution loop for agents
4
+ */
5
+ import { AgentContext, AgentExecutionResult } from '../types/agent.types';
6
+ import { IAgentStateManager } from '../state/agent-state.interface';
7
+ import { AgentContextBuilder } from '../context/agent.context';
8
+ import { ToolExecutor } from './tool.executor';
9
+ import { ToolRegistry } from '../registry/tool.registry';
10
+ import { AgentEventType } from '../types/event.types';
11
+ import { LLMProvider } from '../types/llm.types';
12
+ /**
13
+ * Agent Executor
14
+ * Implements the core agent execution loop
15
+ */
16
+ export declare class AgentExecutor {
17
+ private stateManager;
18
+ private contextBuilder;
19
+ private toolExecutor;
20
+ private toolRegistry;
21
+ private llmProvider?;
22
+ private eventEmitter?;
23
+ constructor(stateManager: IAgentStateManager, contextBuilder: AgentContextBuilder, toolExecutor: ToolExecutor, toolRegistry: ToolRegistry, llmProvider?: LLMProvider | undefined, eventEmitter?: ((type: AgentEventType, executionId: string, data: unknown) => void) | undefined);
24
+ /**
25
+ * Helper to handle both sync and async state manager calls
26
+ */
27
+ private unwrap;
28
+ /**
29
+ * Execute agent with controlled loop
30
+ */
31
+ execute(context: AgentContext, maxSteps?: number): Promise<AgentExecutionResult>;
32
+ /**
33
+ * Execute a single step
34
+ */
35
+ private executeStep;
36
+ /**
37
+ * Decide next action using LLM
38
+ */
39
+ private decideNextAction;
40
+ /**
41
+ * Execute a tool
42
+ */
43
+ private executeTool;
44
+ /**
45
+ * Build prompt for LLM
46
+ */
47
+ private buildPrompt;
48
+ /**
49
+ * Resume execution after pause
50
+ */
51
+ resume(executionId: string, input?: string): Promise<AgentExecutionResult>;
52
+ /**
53
+ * Emit event
54
+ */
55
+ private emitEvent;
56
+ }
57
+ //# sourceMappingURL=agent.executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.executor.d.ts","sourceRoot":"","sources":["../../src/executor/agent.executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EAMZ,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,YAAY,CAAC;gBALb,YAAY,EAAE,kBAAkB,EAChC,cAAc,EAAE,mBAAmB,EACnC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,WAAW,YAAA,EACzB,YAAY,CAAC,GAAE,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,aAAA;IAG3F;;OAEG;YACW,MAAM;IAIpB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+F1F;;OAEG;YACW,WAAW;IAoFzB;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;YACW,WAAW;IAgDzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBhF;;OAEG;IACH,OAAO,CAAC,SAAS;CAKlB"}