@hazeljs/agent 1.0.0 → 1.0.2
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 +19 -19
- package/PERSISTENCE.md +49 -0
- package/PRODUCTION_READINESS.md +42 -15
- package/QUICKSTART.md +20 -0
- package/README.md +44 -5
- package/STATE_VS_MEMORY.md +20 -3
- package/dist/agent.module.d.ts +23 -0
- package/dist/agent.module.d.ts.map +1 -1
- package/dist/agent.module.js +54 -1
- package/dist/agent.module.js.map +1 -1
- package/dist/approval/approval-store.interface.d.ts +18 -0
- package/dist/approval/approval-store.interface.d.ts.map +1 -0
- package/dist/approval/approval-store.interface.js +6 -0
- package/dist/approval/approval-store.interface.js.map +1 -0
- package/dist/approval/create-approval-store.d.ts +8 -0
- package/dist/approval/create-approval-store.d.ts.map +1 -0
- package/dist/approval/create-approval-store.js +15 -0
- package/dist/approval/create-approval-store.js.map +1 -0
- package/dist/approval/in-memory-approval.store.d.ts +22 -0
- package/dist/approval/in-memory-approval.store.d.ts.map +1 -0
- package/dist/approval/in-memory-approval.store.js +64 -0
- package/dist/approval/in-memory-approval.store.js.map +1 -0
- package/dist/approval/redis-approval.store.d.ts +34 -0
- package/dist/approval/redis-approval.store.d.ts.map +1 -0
- package/dist/approval/redis-approval.store.js +122 -0
- package/dist/approval/redis-approval.store.js.map +1 -0
- package/dist/context/agent.context.d.ts +1 -1
- package/dist/context/agent.context.d.ts.map +1 -1
- package/dist/context/agent.context.js +4 -2
- package/dist/context/agent.context.js.map +1 -1
- package/dist/events/event.emitter.d.ts +5 -0
- package/dist/events/event.emitter.d.ts.map +1 -1
- package/dist/events/event.emitter.js +12 -3
- package/dist/events/event.emitter.js.map +1 -1
- package/dist/executor/agent.executor.d.ts +9 -1
- package/dist/executor/agent.executor.d.ts.map +1 -1
- package/dist/executor/agent.executor.js +23 -3
- package/dist/executor/agent.executor.js.map +1 -1
- package/dist/executor/tool.executor.d.ts +15 -31
- package/dist/executor/tool.executor.d.ts.map +1 -1
- package/dist/executor/tool.executor.js +56 -78
- package/dist/executor/tool.executor.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/agent.runtime.d.ts +13 -0
- package/dist/runtime/agent.runtime.d.ts.map +1 -1
- package/dist/runtime/agent.runtime.js +43 -9
- package/dist/runtime/agent.runtime.js.map +1 -1
- package/dist/state/create-state-manager.d.ts +38 -0
- package/dist/state/create-state-manager.d.ts.map +1 -0
- package/dist/state/create-state-manager.js +148 -0
- package/dist/state/create-state-manager.js.map +1 -0
- package/dist/state/database-state.manager.d.ts +2 -3
- package/dist/state/database-state.manager.d.ts.map +1 -1
- package/dist/state/database-state.manager.js.map +1 -1
- package/dist/state/redis-client.types.d.ts +38 -0
- package/dist/state/redis-client.types.d.ts.map +1 -0
- package/dist/state/redis-client.types.js +3 -0
- package/dist/state/redis-client.types.js.map +1 -0
- package/dist/state/redis-state.manager.d.ts +2 -3
- package/dist/state/redis-state.manager.d.ts.map +1 -1
- package/dist/state/redis-state.manager.js +1 -1
- package/dist/state/redis-state.manager.js.map +1 -1
- package/dist/testing/mocks/hazeljs-eval.d.ts +7 -0
- package/dist/testing/mocks/hazeljs-eval.d.ts.map +1 -0
- package/dist/testing/mocks/hazeljs-eval.js +19 -0
- package/dist/testing/mocks/hazeljs-eval.js.map +1 -0
- package/dist/types/event.types.d.ts +1 -0
- package/dist/types/event.types.d.ts.map +1 -1
- package/dist/types/event.types.js +1 -0
- package/dist/types/event.types.js.map +1 -1
- package/dist/types/observability.types.d.ts +13 -0
- package/dist/types/observability.types.d.ts.map +1 -0
- package/dist/types/observability.types.js +6 -0
- package/dist/types/observability.types.js.map +1 -0
- package/dist/utils/agent-tracing.d.ts +10 -0
- package/dist/utils/agent-tracing.d.ts.map +1 -0
- package/dist/utils/agent-tracing.js +114 -0
- package/dist/utils/agent-tracing.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +6 -30
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +21 -58
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/retry.d.ts +3 -21
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +37 -69
- package/dist/utils/retry.js.map +1 -1
- package/package.json +23 -13
- package/tsconfig.jest.json +15 -0
|
@@ -5,54 +5,38 @@
|
|
|
5
5
|
import { ToolExecutionResult, ToolApprovalRequest, ToolMetadata } from '../types/tool.types';
|
|
6
6
|
import { AgentEventType } from '../types/event.types';
|
|
7
7
|
import type { IGuardrailsService } from '../types/agent.types';
|
|
8
|
+
import { IApprovalStore } from '../approval/approval-store.interface';
|
|
9
|
+
import type { ObservabilityProvider } from '../types/observability.types';
|
|
10
|
+
export interface ToolExecutorOptions {
|
|
11
|
+
eventEmitter?: (type: AgentEventType, data: unknown) => void;
|
|
12
|
+
guardrailsService?: IGuardrailsService;
|
|
13
|
+
approvalStore?: IApprovalStore;
|
|
14
|
+
observabilityProvider?: ObservabilityProvider;
|
|
15
|
+
}
|
|
8
16
|
/**
|
|
9
17
|
* Tool Executor
|
|
10
18
|
* Handles tool execution with approval and retry logic
|
|
11
19
|
*/
|
|
12
20
|
export declare class ToolExecutor {
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private approvalResolvers;
|
|
17
|
-
private executionContexts;
|
|
21
|
+
private options;
|
|
22
|
+
private readonly approvalStore;
|
|
23
|
+
private readonly executionContexts;
|
|
18
24
|
private static readonly DEFAULT_APPROVAL_TTL_MS;
|
|
19
|
-
constructor(
|
|
25
|
+
constructor(options?: ToolExecutorOptions);
|
|
20
26
|
/**
|
|
21
27
|
* Execute a tool
|
|
22
28
|
*/
|
|
23
29
|
execute(tool: ToolMetadata, input: Record<string, unknown>, agentId: string, sessionId: string, userId?: string): Promise<ToolExecutionResult>;
|
|
24
|
-
|
|
25
|
-
* Execute tool with retry logic
|
|
26
|
-
*/
|
|
30
|
+
private executeInternal;
|
|
27
31
|
private executeWithRetry;
|
|
28
|
-
/**
|
|
29
|
-
* Execute tool with timeout
|
|
30
|
-
*/
|
|
31
32
|
private executeWithTimeout;
|
|
32
|
-
/**
|
|
33
|
-
* Request approval for tool execution (event-driven: resolves when approve/reject/expire is called).
|
|
34
|
-
* Returns { promise, requestId } so callers can emit events with the correct requestId.
|
|
35
|
-
*/
|
|
36
33
|
private requestApproval;
|
|
37
|
-
/**
|
|
38
|
-
* Approve a tool execution (event-driven: resolves the pending Promise immediately).
|
|
39
|
-
*/
|
|
40
34
|
approveExecution(requestId: string, approvedBy: string): void;
|
|
41
|
-
/**
|
|
42
|
-
* Reject a tool execution (event-driven: resolves the pending Promise immediately).
|
|
43
|
-
*/
|
|
44
35
|
rejectExecution(requestId: string): void;
|
|
45
|
-
/**
|
|
46
|
-
* Get pending approval requests
|
|
47
|
-
*/
|
|
48
36
|
getPendingApprovals(): ToolApprovalRequest[];
|
|
49
|
-
|
|
50
|
-
* Emit event
|
|
51
|
-
*/
|
|
37
|
+
getPendingApprovalsAsync(): Promise<ToolApprovalRequest[]>;
|
|
52
38
|
private emitEvent;
|
|
53
|
-
/**
|
|
54
|
-
* Delay helper
|
|
55
|
-
*/
|
|
56
39
|
private delay;
|
|
40
|
+
private unwrap;
|
|
57
41
|
}
|
|
58
42
|
//# sourceMappingURL=tool.executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.executor.d.ts","sourceRoot":"","sources":["../../src/executor/tool.executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,mBAAmB,EAEnB,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.executor.d.ts","sourceRoot":"","sources":["../../src/executor/tool.executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,mBAAmB,EAEnB,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAItE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED;;;GAGG;AACH,qBAAa,YAAY;IAMX,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2C;IAE7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAW;gBAEtC,OAAO,GAAE,mBAAwB;IAIrD;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC;YASjB,eAAe;YA0Jf,gBAAgB;YAsBhB,kBAAkB;YAiClB,eAAe;IAiE7B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC,mBAAmB,IAAI,mBAAmB,EAAE;IAKtC,wBAAwB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIhE,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;YAIC,MAAM;CAGrB"}
|
|
@@ -8,22 +8,26 @@ exports.ToolExecutor = void 0;
|
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
const tool_types_1 = require("../types/tool.types");
|
|
10
10
|
const event_types_1 = require("../types/event.types");
|
|
11
|
+
const in_memory_approval_store_1 = require("../approval/in-memory-approval.store");
|
|
12
|
+
const redis_approval_store_1 = require("../approval/redis-approval.store");
|
|
13
|
+
const agent_tracing_1 = require("../utils/agent-tracing");
|
|
11
14
|
/**
|
|
12
15
|
* Tool Executor
|
|
13
16
|
* Handles tool execution with approval and retry logic
|
|
14
17
|
*/
|
|
15
18
|
class ToolExecutor {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
18
|
-
this.guardrailsService = guardrailsService;
|
|
19
|
-
this.pendingApprovals = new Map();
|
|
20
|
-
this.approvalResolvers = new Map();
|
|
19
|
+
constructor(options = {}) {
|
|
20
|
+
this.options = options;
|
|
21
21
|
this.executionContexts = new Map();
|
|
22
|
+
this.approvalStore = options.approvalStore ?? new in_memory_approval_store_1.InMemoryApprovalStore();
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Execute a tool
|
|
25
26
|
*/
|
|
26
27
|
async execute(tool, input, agentId, sessionId, userId) {
|
|
28
|
+
return (0, agent_tracing_1.withAgentSpan)('agent.tool.execute', { 'agent.tool.name': tool.name, 'agent.id': agentId, 'agent.session_id': sessionId }, () => this.executeInternal(tool, input, agentId, sessionId, userId), this.options.observabilityProvider);
|
|
29
|
+
}
|
|
30
|
+
async executeInternal(tool, input, agentId, sessionId, userId) {
|
|
27
31
|
const executionId = (0, crypto_1.randomUUID)();
|
|
28
32
|
const startTime = Date.now();
|
|
29
33
|
const context = {
|
|
@@ -42,7 +46,6 @@ class ToolExecutor {
|
|
|
42
46
|
input,
|
|
43
47
|
});
|
|
44
48
|
try {
|
|
45
|
-
// Validate input against Zod schema if provided
|
|
46
49
|
if (tool.schema) {
|
|
47
50
|
const parsed = await tool.schema.safeParseAsync(input);
|
|
48
51
|
if (!parsed.success) {
|
|
@@ -62,12 +65,11 @@ class ToolExecutor {
|
|
|
62
65
|
duration: context.duration,
|
|
63
66
|
};
|
|
64
67
|
}
|
|
65
|
-
// Use parsed data which may include defaults/transforms
|
|
66
68
|
input = parsed.data;
|
|
67
69
|
context.input = input;
|
|
68
70
|
}
|
|
69
|
-
if (this.guardrailsService) {
|
|
70
|
-
const inputResult = this.guardrailsService.checkInput(input);
|
|
71
|
+
if (this.options.guardrailsService) {
|
|
72
|
+
const inputResult = this.options.guardrailsService.checkInput(input);
|
|
71
73
|
if (!inputResult.allowed) {
|
|
72
74
|
context.status = tool_types_1.ToolExecutionStatus.FAILED;
|
|
73
75
|
context.completedAt = new Date();
|
|
@@ -89,7 +91,7 @@ class ToolExecutor {
|
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
if (tool.requiresApproval) {
|
|
92
|
-
const { promise, requestId } = this.requestApproval(tool, input, agentId, executionId);
|
|
94
|
+
const { promise, requestId } = await this.requestApproval(tool, input, agentId, executionId);
|
|
93
95
|
const approved = await promise;
|
|
94
96
|
if (!approved) {
|
|
95
97
|
context.status = tool_types_1.ToolExecutionStatus.REJECTED;
|
|
@@ -148,16 +150,12 @@ class ToolExecutor {
|
|
|
148
150
|
this.executionContexts.delete(executionId);
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
|
-
/**
|
|
152
|
-
* Execute tool with retry logic
|
|
153
|
-
*/
|
|
154
153
|
async executeWithRetry(tool, input, maxRetries) {
|
|
155
154
|
let lastError;
|
|
156
155
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
157
156
|
try {
|
|
158
157
|
const timeout = tool.timeout || 30000;
|
|
159
|
-
|
|
160
|
-
return result;
|
|
158
|
+
return await this.executeWithTimeout(tool, input, timeout);
|
|
161
159
|
}
|
|
162
160
|
catch (error) {
|
|
163
161
|
lastError = error;
|
|
@@ -168,9 +166,6 @@ class ToolExecutor {
|
|
|
168
166
|
}
|
|
169
167
|
throw lastError;
|
|
170
168
|
}
|
|
171
|
-
/**
|
|
172
|
-
* Execute tool with timeout
|
|
173
|
-
*/
|
|
174
169
|
async executeWithTimeout(tool, input, timeout) {
|
|
175
170
|
let timeoutId;
|
|
176
171
|
try {
|
|
@@ -180,8 +175,8 @@ class ToolExecutor {
|
|
|
180
175
|
timeoutId = setTimeout(() => reject(new Error(`Tool execution timeout after ${timeout}ms`)), timeout);
|
|
181
176
|
}),
|
|
182
177
|
]);
|
|
183
|
-
if (this.guardrailsService && result !== undefined && result !== null) {
|
|
184
|
-
const outputResult = this.guardrailsService.checkOutput(result);
|
|
178
|
+
if (this.options.guardrailsService && result !== undefined && result !== null) {
|
|
179
|
+
const outputResult = this.options.guardrailsService.checkOutput(result);
|
|
185
180
|
if (!outputResult.allowed) {
|
|
186
181
|
throw new Error(outputResult.blockedReason ?? 'Output blocked by guardrails');
|
|
187
182
|
}
|
|
@@ -195,11 +190,7 @@ class ToolExecutor {
|
|
|
195
190
|
}
|
|
196
191
|
}
|
|
197
192
|
}
|
|
198
|
-
|
|
199
|
-
* Request approval for tool execution (event-driven: resolves when approve/reject/expire is called).
|
|
200
|
-
* Returns { promise, requestId } so callers can emit events with the correct requestId.
|
|
201
|
-
*/
|
|
202
|
-
requestApproval(tool, input, agentId, executionId) {
|
|
193
|
+
async requestApproval(tool, input, agentId, executionId) {
|
|
203
194
|
const requestId = (0, crypto_1.randomUUID)();
|
|
204
195
|
const expiresAt = new Date(Date.now() + ToolExecutor.DEFAULT_APPROVAL_TTL_MS);
|
|
205
196
|
const request = {
|
|
@@ -212,79 +203,66 @@ class ToolExecutor {
|
|
|
212
203
|
expiresAt,
|
|
213
204
|
status: 'pending',
|
|
214
205
|
};
|
|
215
|
-
this.
|
|
216
|
-
this.emitEvent(event_types_1.AgentEventType.TOOL_APPROVAL_REQUESTED, {
|
|
217
|
-
requestId,
|
|
218
|
-
toolName: tool.name,
|
|
219
|
-
input,
|
|
220
|
-
});
|
|
206
|
+
const createResult = this.approvalStore.create(request);
|
|
221
207
|
const promise = new Promise((resolve) => {
|
|
222
|
-
const timeoutId = setTimeout(() => {
|
|
223
|
-
const req = this.
|
|
208
|
+
const timeoutId = setTimeout(async () => {
|
|
209
|
+
const req = await this.unwrap(this.approvalStore.get(requestId));
|
|
224
210
|
if (req && req.status === 'pending') {
|
|
225
211
|
req.status = 'expired';
|
|
226
|
-
this.
|
|
227
|
-
this.approvalResolvers.delete(requestId);
|
|
212
|
+
await this.unwrap(this.approvalStore.delete(requestId));
|
|
228
213
|
resolve(false);
|
|
229
214
|
}
|
|
230
215
|
}, ToolExecutor.DEFAULT_APPROVAL_TTL_MS);
|
|
231
|
-
this.
|
|
216
|
+
if (this.approvalStore instanceof in_memory_approval_store_1.InMemoryApprovalStore) {
|
|
217
|
+
this.approvalStore.registerResolver(requestId, { resolve, timeoutId });
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (this.approvalStore instanceof redis_approval_store_1.RedisApprovalStore) {
|
|
221
|
+
this.approvalStore.registerResolver(requestId, { resolve, timeoutId });
|
|
222
|
+
void this.approvalStore
|
|
223
|
+
.waitForResolution(requestId, expiresAt)
|
|
224
|
+
.then((approved) => {
|
|
225
|
+
clearTimeout(timeoutId);
|
|
226
|
+
resolve(approved);
|
|
227
|
+
})
|
|
228
|
+
.catch(() => {
|
|
229
|
+
clearTimeout(timeoutId);
|
|
230
|
+
resolve(false);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
if (createResult instanceof Promise) {
|
|
235
|
+
await createResult;
|
|
236
|
+
}
|
|
237
|
+
this.emitEvent(event_types_1.AgentEventType.TOOL_APPROVAL_REQUESTED, {
|
|
238
|
+
requestId,
|
|
239
|
+
toolName: tool.name,
|
|
240
|
+
input,
|
|
232
241
|
});
|
|
233
242
|
return { promise, requestId };
|
|
234
243
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Approve a tool execution (event-driven: resolves the pending Promise immediately).
|
|
237
|
-
*/
|
|
238
244
|
approveExecution(requestId, approvedBy) {
|
|
239
|
-
|
|
240
|
-
const resolver = this.approvalResolvers.get(requestId);
|
|
241
|
-
if (request && request.status === 'pending' && resolver) {
|
|
242
|
-
request.status = 'approved';
|
|
243
|
-
request.approvedBy = approvedBy;
|
|
244
|
-
request.approvedAt = new Date();
|
|
245
|
-
if (resolver.timeoutId)
|
|
246
|
-
clearTimeout(resolver.timeoutId);
|
|
247
|
-
this.approvalResolvers.delete(requestId);
|
|
248
|
-
this.pendingApprovals.delete(requestId);
|
|
249
|
-
resolver.resolve(true);
|
|
250
|
-
}
|
|
245
|
+
void this.approvalStore.approve(requestId, approvedBy);
|
|
251
246
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Reject a tool execution (event-driven: resolves the pending Promise immediately).
|
|
254
|
-
*/
|
|
255
247
|
rejectExecution(requestId) {
|
|
256
|
-
|
|
257
|
-
const resolver = this.approvalResolvers.get(requestId);
|
|
258
|
-
if (request && request.status === 'pending' && resolver) {
|
|
259
|
-
request.status = 'rejected';
|
|
260
|
-
request.rejectedAt = new Date();
|
|
261
|
-
if (resolver.timeoutId)
|
|
262
|
-
clearTimeout(resolver.timeoutId);
|
|
263
|
-
this.approvalResolvers.delete(requestId);
|
|
264
|
-
this.pendingApprovals.delete(requestId);
|
|
265
|
-
resolver.resolve(false);
|
|
266
|
-
}
|
|
248
|
+
void this.approvalStore.reject(requestId);
|
|
267
249
|
}
|
|
268
|
-
/**
|
|
269
|
-
* Get pending approval requests
|
|
270
|
-
*/
|
|
271
250
|
getPendingApprovals() {
|
|
272
|
-
|
|
251
|
+
const result = this.approvalStore.listPending();
|
|
252
|
+
return result instanceof Promise ? [] : result;
|
|
253
|
+
}
|
|
254
|
+
async getPendingApprovalsAsync() {
|
|
255
|
+
return this.unwrap(this.approvalStore.listPending());
|
|
273
256
|
}
|
|
274
|
-
/**
|
|
275
|
-
* Emit event
|
|
276
|
-
*/
|
|
277
257
|
emitEvent(type, data) {
|
|
278
|
-
|
|
279
|
-
this.eventEmitter(type, data);
|
|
280
|
-
}
|
|
258
|
+
this.options.eventEmitter?.(type, data);
|
|
281
259
|
}
|
|
282
|
-
/**
|
|
283
|
-
* Delay helper
|
|
284
|
-
*/
|
|
285
260
|
delay(ms) {
|
|
286
261
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
287
262
|
}
|
|
263
|
+
async unwrap(value) {
|
|
264
|
+
return value instanceof Promise ? await value : value;
|
|
265
|
+
}
|
|
288
266
|
}
|
|
289
267
|
exports.ToolExecutor = ToolExecutor;
|
|
290
268
|
ToolExecutor.DEFAULT_APPROVAL_TTL_MS = 300000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.executor.js","sourceRoot":"","sources":["../../src/executor/tool.executor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAoC;AACpC,oDAM6B;AAC7B,sDAAsD;
|
|
1
|
+
{"version":3,"file":"tool.executor.js","sourceRoot":"","sources":["../../src/executor/tool.executor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAoC;AACpC,oDAM6B;AAC7B,sDAAsD;AAGtD,mFAA6E;AAC7E,2EAAsE;AACtE,0DAAuD;AAUvD;;;GAGG;AACH,MAAa,YAAY;IAMvB,YAAoB,UAA+B,EAAE;QAAjC,YAAO,GAAP,OAAO,CAA0B;QAJpC,sBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAC;QAK3E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,gDAAqB,EAAE,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,IAAkB,EAClB,KAA8B,EAC9B,OAAe,EACf,SAAiB,EACjB,MAAe;QAEf,OAAO,IAAA,6BAAa,EAClB,oBAAoB,EACpB,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,EACpF,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EACnE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CACnC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAkB,EAClB,KAA8B,EAC9B,OAAe,EACf,SAAiB,EACjB,MAAe;QAEf,MAAM,WAAW,GAAG,IAAA,mBAAU,GAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAyB;YACpC,WAAW;YACX,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,SAAS;YACT,MAAM;YACN,KAAK;YACL,MAAM,EAAE,gCAAmB,CAAC,OAAO;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,sBAAsB,EAAE;YACpD,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,MAAM,CAAC;oBAC5C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;oBACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAC1C,MAAM,QAAQ,GAAG,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAEpE,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,qBAAqB,EAAE;wBACnD,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,KAAK;wBACL,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC;wBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC;gBACJ,CAAC;gBACD,KAAK,GAAG,MAAM,CAAC,IAA+B,CAAC;gBAC/C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,MAAM,CAAC;oBAC5C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;oBACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAE1C,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,qBAAqB,EAAE;wBACnD,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,KAAK;wBACL,KAAK,EAAE,WAAW,CAAC,aAAa,IAAI,6BAA6B;wBACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,6BAA6B,CAAC;wBAC5E,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC;gBACJ,CAAC;gBACD,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAmC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CACvD,IAAI,EACJ,KAAK,EACL,OAAO,EACP,WAAW,CACZ,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,QAAQ,CAAC;oBAE9C,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,oBAAoB,EAAE;wBAClD,SAAS;wBACT,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,KAAK;qBACN,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,IAAI,KAAK,CAAC,iCAAiC,CAAC;wBACnD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACjC,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,QAAQ,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,qBAAqB,EAAE;oBACnD,SAAS;oBACT,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,SAAS,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAE3E,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,SAAS,CAAC;YAC/C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE1C,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,wBAAwB,EAAE;gBACtD,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,KAAK;gBACL,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,GAAG,gCAAmB,CAAC,MAAM,CAAC;YAC5C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE1C,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,qBAAqB,EAAE;gBACnD,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,KAAK;gBACL,KAAK,EAAG,KAAe,CAAC,OAAO;gBAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAc;gBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAkB,EAClB,KAA8B,EAC9B,UAAkB;QAElB,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;gBACtC,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAC3B,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAAkB,EAClB,KAA8B,EAC9B,OAAe;QAEf,IAAI,SAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;gBACpC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBACxB,SAAS,GAAG,UAAU,CACpB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,OAAO,IAAI,CAAC,CAAC,EACpE,OAAO,CACR,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAyB,CAAC,CAAC;gBAC3F,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,IAAI,8BAA8B,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC;YACzC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAkB,EAClB,KAA8B,EAC9B,OAAe,EACf,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;QAE9E,MAAM,OAAO,GAAwB;YACnC,SAAS;YACT,WAAW;YACX,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,KAAK;YACL,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,SAAS;YACT,MAAM,EAAE,SAAS;SAClB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;oBACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;oBACxD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,aAAa,YAAY,gDAAqB,EAAE,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,YAAY,yCAAkB,EAAE,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACvE,KAAK,IAAI,CAAC,aAAa;qBACpB,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;qBACvC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;oBACV,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,YAAY,OAAO,EAAE,CAAC;YACpC,MAAM,YAAY,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,4BAAc,CAAC,uBAAuB,EAAE;YACrD,SAAS;YACT,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,KAAK;SACN,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;QACpD,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,SAAS,CAAC,IAAoB,EAAE,IAAa;QACnD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,MAAM,CAAI,KAAqB;QAC3C,OAAO,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;;AAzUH,oCA0UC;AAtUyB,oCAAuB,GAAG,MAAO,AAAV,CAAW"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,13 @@ export * from './state/agent.state';
|
|
|
18
18
|
export * from './state/agent-state.interface';
|
|
19
19
|
export * from './state/redis-state.manager';
|
|
20
20
|
export * from './state/database-state.manager';
|
|
21
|
+
export * from './state/create-state-manager';
|
|
22
|
+
export * from './state/redis-client.types';
|
|
23
|
+
export * from './approval/approval-store.interface';
|
|
24
|
+
export * from './approval/in-memory-approval.store';
|
|
25
|
+
export * from './approval/redis-approval.store';
|
|
26
|
+
export * from './approval/create-approval-store';
|
|
27
|
+
export * from './types/observability.types';
|
|
21
28
|
export * from './context/agent.context';
|
|
22
29
|
export * from './executor/agent.executor';
|
|
23
30
|
export * from './executor/tool.executor';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AAExC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAErF,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAErF,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,13 @@ __exportStar(require("./state/agent.state"), exports);
|
|
|
35
35
|
__exportStar(require("./state/agent-state.interface"), exports);
|
|
36
36
|
__exportStar(require("./state/redis-state.manager"), exports);
|
|
37
37
|
__exportStar(require("./state/database-state.manager"), exports);
|
|
38
|
+
__exportStar(require("./state/create-state-manager"), exports);
|
|
39
|
+
__exportStar(require("./state/redis-client.types"), exports);
|
|
40
|
+
__exportStar(require("./approval/approval-store.interface"), exports);
|
|
41
|
+
__exportStar(require("./approval/in-memory-approval.store"), exports);
|
|
42
|
+
__exportStar(require("./approval/redis-approval.store"), exports);
|
|
43
|
+
__exportStar(require("./approval/create-approval-store"), exports);
|
|
44
|
+
__exportStar(require("./types/observability.types"), exports);
|
|
38
45
|
__exportStar(require("./context/agent.context"), exports);
|
|
39
46
|
__exportStar(require("./executor/agent.executor"), exports);
|
|
40
47
|
__exportStar(require("./executor/tool.executor"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,sDAAoC;AACpC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AAErC,+DAA6C;AAC7C,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAEhD,4DAA0C;AAC1C,2DAAyC;AAEzC,sDAAoC;AACpC,gEAA8C;AAC9C,8DAA4C;AAC5C,iEAA+C;AAC/C,0DAAwC;AAExC,4DAA0C;AAC1C,2DAAyC;AAEzC,yDAAuC;AAEvC,0DAAwC;AAExC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,uDAAqC;AAErC,4BAA4B;AAC5B,4DAA0C;AAC1C,sDAAoC;AACpC,0DAAwC;AAExC,gCAAgC;AAChC,kDAAgC;AAChC,+DAAgF;AAAvE,oHAAA,cAAc,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAE7C,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAGlB,+CAAqF;AAA5E,2GAAA,WAAW,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,wHAAA,wBAAwB,OAAA;AAE5D,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,sDAAoC;AACpC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AAErC,+DAA6C;AAC7C,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAEhD,4DAA0C;AAC1C,2DAAyC;AAEzC,sDAAoC;AACpC,gEAA8C;AAC9C,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,6DAA2C;AAC3C,sEAAoD;AACpD,sEAAoD;AACpD,kEAAgD;AAChD,mEAAiD;AACjD,8DAA4C;AAC5C,0DAAwC;AAExC,4DAA0C;AAC1C,2DAAyC;AAEzC,yDAAuC;AAEvC,0DAAwC;AAExC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,uDAAqC;AAErC,4BAA4B;AAC5B,4DAA0C;AAC1C,sDAAoC;AACpC,0DAAwC;AAExC,gCAAgC;AAChC,kDAAgC;AAChC,+DAAgF;AAAvE,oHAAA,cAAc,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAE7C,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAGlB,+CAAqF;AAA5E,2GAAA,WAAW,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,wHAAA,wBAAwB,OAAA;AAE5D,0DAAwC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Agent Runtime
|
|
3
3
|
* Main runtime for managing agent lifecycle and execution
|
|
4
4
|
*/
|
|
5
|
+
import { CreateStateManagerOptions } from '../state/create-state-manager';
|
|
5
6
|
import { IAgentStateManager } from '../state/agent-state.interface';
|
|
7
|
+
import { IApprovalStore } from '../approval/approval-store.interface';
|
|
6
8
|
import { AgentExecutionOptions, AgentExecutionResult, AgentContext, IGuardrailsService, AgentStreamChunk } from '../types/agent.types';
|
|
7
9
|
import { AgentEventType } from '../types/event.types';
|
|
8
10
|
import { LLMProvider } from '../types/llm.types';
|
|
@@ -13,15 +15,20 @@ import { HealthCheckResult } from '../utils/health-check';
|
|
|
13
15
|
import { AgentGraph } from '../graph/agent-graph';
|
|
14
16
|
import { SupervisorAgent } from '../supervisor/supervisor';
|
|
15
17
|
import { SupervisorConfig } from '../graph/agent-graph.types';
|
|
18
|
+
import type { ObservabilityProvider } from '../types/observability.types';
|
|
16
19
|
/**
|
|
17
20
|
* Agent Runtime Configuration
|
|
18
21
|
*/
|
|
19
22
|
export interface AgentRuntimeConfig {
|
|
20
23
|
stateManager?: IAgentStateManager;
|
|
24
|
+
/** Factory options when stateManager is not provided explicitly */
|
|
25
|
+
stateManagerOptions?: CreateStateManagerOptions;
|
|
26
|
+
approvalStore?: IApprovalStore;
|
|
21
27
|
memoryManager?: MemoryManager;
|
|
22
28
|
ragService?: RAGService;
|
|
23
29
|
llmProvider?: LLMProvider;
|
|
24
30
|
guardrailsService?: IGuardrailsService;
|
|
31
|
+
observabilityProvider?: ObservabilityProvider;
|
|
25
32
|
defaultMaxSteps?: number;
|
|
26
33
|
defaultTimeout?: number;
|
|
27
34
|
enableObservability?: boolean;
|
|
@@ -30,6 +37,10 @@ export interface AgentRuntimeConfig {
|
|
|
30
37
|
logLevel?: LogLevel;
|
|
31
38
|
enableRetry?: boolean;
|
|
32
39
|
enableCircuitBreaker?: boolean;
|
|
40
|
+
/** When true, event handler errors propagate instead of being logged only */
|
|
41
|
+
strictEventHandlers?: boolean;
|
|
42
|
+
/** Use Redis-backed approval store when redisClient is in stateManagerOptions (default: true when client present) */
|
|
43
|
+
useRedisApprovals?: boolean;
|
|
33
44
|
}
|
|
34
45
|
/**
|
|
35
46
|
* Agent Runtime
|
|
@@ -170,6 +181,8 @@ export declare class AgentRuntime {
|
|
|
170
181
|
* Get pending tool approvals
|
|
171
182
|
*/
|
|
172
183
|
getPendingApprovals(): import('../types/tool.types').ToolApprovalRequest[];
|
|
184
|
+
getPendingApprovalsAsync(): Promise<import('../types/tool.types').ToolApprovalRequest[]>;
|
|
185
|
+
private handleRagError;
|
|
173
186
|
/**
|
|
174
187
|
* Create a new `AgentGraph` builder for this runtime.
|
|
175
188
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"agent.runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.AgentRuntime = void 0;
|
|
8
8
|
const agent_registry_1 = require("../registry/agent.registry");
|
|
9
9
|
const tool_registry_1 = require("../registry/tool.registry");
|
|
10
|
-
const
|
|
10
|
+
const create_state_manager_1 = require("../state/create-state-manager");
|
|
11
|
+
const create_approval_store_1 = require("../approval/create-approval-store");
|
|
11
12
|
const agent_context_1 = require("../context/agent.context");
|
|
12
13
|
const agent_executor_1 = require("../executor/agent.executor");
|
|
13
14
|
const tool_executor_1 = require("../executor/tool.executor");
|
|
14
15
|
const event_emitter_1 = require("../events/event.emitter");
|
|
15
16
|
const agent_types_1 = require("../types/agent.types");
|
|
16
17
|
const agent_error_1 = require("../errors/agent.error");
|
|
18
|
+
const event_types_1 = require("../types/event.types");
|
|
17
19
|
const rate_limiter_1 = require("../utils/rate-limiter");
|
|
18
20
|
const metrics_1 = require("../utils/metrics");
|
|
19
21
|
const logger_1 = require("../utils/logger");
|
|
@@ -85,15 +87,28 @@ class AgentRuntime {
|
|
|
85
87
|
this.healthChecker = new health_check_1.HealthChecker();
|
|
86
88
|
this.agentRegistry = new agent_registry_1.AgentRegistry();
|
|
87
89
|
this.toolRegistry = new tool_registry_1.ToolRegistry();
|
|
88
|
-
this.stateManager = config.stateManager
|
|
90
|
+
this.stateManager = (0, create_state_manager_1.resolveStateManager)(config.stateManager, config.stateManagerOptions);
|
|
89
91
|
this.contextBuilder = new agent_context_1.AgentContextBuilder(config.memoryManager);
|
|
90
|
-
this.eventEmitter = new event_emitter_1.AgentEventEmitter(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
this.eventEmitter = new event_emitter_1.AgentEventEmitter({
|
|
93
|
+
strictEventHandlers: this.config.strictEventHandlers,
|
|
94
|
+
});
|
|
95
|
+
const useRedisApprovals = config.useRedisApprovals !== false && !!config.stateManagerOptions?.redisClient;
|
|
96
|
+
const approvalStore = config.approvalStore ??
|
|
97
|
+
(0, create_approval_store_1.createApprovalStore)({
|
|
98
|
+
redisClient: config.stateManagerOptions?.redisClient,
|
|
99
|
+
useRedis: config.useRedisApprovals === true || useRedisApprovals,
|
|
100
|
+
});
|
|
101
|
+
this.toolExecutor = new tool_executor_1.ToolExecutor({
|
|
102
|
+
eventEmitter: (type, data) => {
|
|
103
|
+
void this.eventEmitter.emit(type, '', '', data);
|
|
104
|
+
},
|
|
105
|
+
guardrailsService: config.guardrailsService,
|
|
106
|
+
approvalStore,
|
|
107
|
+
observabilityProvider: config.observabilityProvider,
|
|
108
|
+
});
|
|
94
109
|
this.agentExecutor = new agent_executor_1.AgentExecutor(this.stateManager, this.contextBuilder, this.toolExecutor, this.toolRegistry, config.llmProvider, (type, executionId, data) => {
|
|
95
110
|
this.eventEmitter.emit(type, '', executionId, data);
|
|
96
|
-
});
|
|
111
|
+
}, config.observabilityProvider);
|
|
97
112
|
this.logger.info('Agent runtime initialized', {
|
|
98
113
|
enableMetrics: this.config.enableMetrics,
|
|
99
114
|
enableRetry: this.config.enableRetry,
|
|
@@ -223,7 +238,7 @@ class AgentRuntime {
|
|
|
223
238
|
await this.contextBuilder.buildWithMemory(context);
|
|
224
239
|
}
|
|
225
240
|
if (options.enableRAG !== false && this.config.ragService) {
|
|
226
|
-
await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5);
|
|
241
|
+
await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5, (error) => this.handleRagError(context, error));
|
|
227
242
|
}
|
|
228
243
|
if (options.initialContext) {
|
|
229
244
|
Object.assign(context.memory.workingMemory, options.initialContext);
|
|
@@ -241,6 +256,9 @@ class AgentRuntime {
|
|
|
241
256
|
signal,
|
|
242
257
|
streaming: options.streaming,
|
|
243
258
|
});
|
|
259
|
+
if (result.state === agent_types_1.AgentState.FAILED) {
|
|
260
|
+
throw result.error ?? new Error('Agent execution failed');
|
|
261
|
+
}
|
|
244
262
|
if (this.config.memoryManager) {
|
|
245
263
|
await this.contextBuilder.persistToMemory(context);
|
|
246
264
|
}
|
|
@@ -287,7 +305,7 @@ class AgentRuntime {
|
|
|
287
305
|
await this.contextBuilder.buildWithMemory(context);
|
|
288
306
|
}
|
|
289
307
|
if (options.enableRAG !== false && this.config.ragService) {
|
|
290
|
-
await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5);
|
|
308
|
+
await this.contextBuilder.buildWithRAG(context, this.config.ragService, agent.ragTopK || 5, (error) => this.handleRagError(context, error));
|
|
291
309
|
}
|
|
292
310
|
if (options.initialContext) {
|
|
293
311
|
Object.assign(context.memory.workingMemory, options.initialContext);
|
|
@@ -451,6 +469,22 @@ class AgentRuntime {
|
|
|
451
469
|
getPendingApprovals() {
|
|
452
470
|
return this.toolExecutor.getPendingApprovals();
|
|
453
471
|
}
|
|
472
|
+
async getPendingApprovalsAsync() {
|
|
473
|
+
return this.toolExecutor.getPendingApprovalsAsync();
|
|
474
|
+
}
|
|
475
|
+
handleRagError(context, error) {
|
|
476
|
+
this.logger.error('RAG query failed', error, {
|
|
477
|
+
executionId: context.executionId,
|
|
478
|
+
sessionId: context.sessionId,
|
|
479
|
+
});
|
|
480
|
+
if (this.metrics) {
|
|
481
|
+
this.metrics.recordLLMCall(0, true);
|
|
482
|
+
}
|
|
483
|
+
void this.eventEmitter.emit(event_types_1.AgentEventType.RAG_QUERY_FAILED, context.agentId, context.executionId, {
|
|
484
|
+
error: error.message,
|
|
485
|
+
input: context.input,
|
|
486
|
+
});
|
|
487
|
+
}
|
|
454
488
|
// ---------------------------------------------------------------------------
|
|
455
489
|
// Multi-agent orchestration
|
|
456
490
|
// ---------------------------------------------------------------------------
|