@hazeljs/agent 0.2.0-beta.8 → 0.2.0-beta.81
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/LICENSE +192 -21
- package/README.md +372 -258
- package/coverage/clover.xml +853 -576
- package/coverage/lcov-report/index.html +107 -62
- package/coverage/lcov.info +1428 -945
- package/dist/agent.module.d.ts +16 -1
- package/dist/agent.module.d.ts.map +1 -1
- package/dist/agent.module.js +14 -5
- package/dist/agent.module.js.map +1 -1
- 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/executor/agent.executor.d.ts +1 -0
- package/dist/executor/agent.executor.d.ts.map +1 -1
- package/dist/executor/agent.executor.js +19 -10
- package/dist/executor/agent.executor.js.map +1 -1
- package/dist/executor/tool.executor.d.ts +3 -1
- package/dist/executor/tool.executor.d.ts.map +1 -1
- package/dist/executor/tool.executor.js +33 -2
- package/dist/executor/tool.executor.js.map +1 -1
- 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 +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- 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/runtime/agent.runtime.d.ts +65 -2
- package/dist/runtime/agent.runtime.d.ts.map +1 -1
- package/dist/runtime/agent.runtime.js +105 -4
- package/dist/runtime/agent.runtime.js.map +1 -1
- 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 +15 -0
- package/dist/types/agent.types.d.ts.map +1 -1
- package/dist/types/agent.types.js.map +1 -1
- package/dist/types/event.types.d.ts +76 -1
- package/dist/types/event.types.d.ts.map +1 -1
- package/dist/types/event.types.js +16 -0
- package/dist/types/event.types.js.map +1 -1
- package/dist/utils/circuit-breaker.d.ts +5 -65
- package/dist/utils/circuit-breaker.d.ts.map +1 -1
- package/dist/utils/circuit-breaker.js +10 -150
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/logs/combined.log +1 -1
- package/package.json +23 -8
- package/tsconfig.tsbuildinfo +1 -1
package/dist/agent.module.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
import { AgentRuntime, AgentRuntimeConfig } from './runtime/agent.runtime';
|
|
6
6
|
import { AgentEventType } from './types/event.types';
|
|
7
7
|
type NewableFunction = new (...args: unknown[]) => unknown;
|
|
8
|
+
/** Token for optional GuardrailsService injection (from @hazeljs/guardrails) */
|
|
9
|
+
export declare const GUARDRAILS_SERVICE_TOKEN = "GuardrailsService";
|
|
8
10
|
/**
|
|
9
11
|
* Agent Module Options
|
|
10
12
|
*/
|
|
@@ -18,7 +20,20 @@ export interface AgentModuleOptions {
|
|
|
18
20
|
*/
|
|
19
21
|
export declare class AgentService {
|
|
20
22
|
private runtime;
|
|
21
|
-
constructor(
|
|
23
|
+
constructor(guardrailsService?: {
|
|
24
|
+
checkInput: (input: string | object, options?: unknown) => {
|
|
25
|
+
allowed: boolean;
|
|
26
|
+
modified?: string | object;
|
|
27
|
+
violations?: string[];
|
|
28
|
+
blockedReason?: string;
|
|
29
|
+
};
|
|
30
|
+
checkOutput: (output: string | object, options?: unknown) => {
|
|
31
|
+
allowed: boolean;
|
|
32
|
+
modified?: string | object;
|
|
33
|
+
violations?: string[];
|
|
34
|
+
blockedReason?: string;
|
|
35
|
+
};
|
|
36
|
+
}, config?: AgentRuntimeConfig);
|
|
22
37
|
getRuntime(): AgentRuntime;
|
|
23
38
|
execute(agentName: string, input: string, options?: Record<string, unknown>): Promise<unknown>;
|
|
24
39
|
resume(executionId: string, input?: string): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.module.d.ts","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;
|
|
1
|
+
{"version":3,"file":"agent.module.d.ts","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;gBAI5B,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,CACV,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,CAAC,EAAE,OAAO,KACd;YACH,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,WAAW,EAAE,CACX,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,CAAC,EAAE,OAAO,KACd;YACH,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,EACD,MAAM,GAAE,kBAAuB;IAkBjC,UAAU,IAAI,YAAY;IAIpB,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAIb,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAInE,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIxC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIjE,SAAS,IAAI,OAAO,EAAE;IAItB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C,mBAAmB,IAAI,OAAO,EAAE;CAGjC;AAED;;;GAGG;AACH,qBAIa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,OAAO,CAA0B;IAEhD,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,WAAW;IAKpE,MAAM,CAAC,UAAU,IAAI,kBAAkB;CAGxC"}
|
package/dist/agent.module.js
CHANGED
|
@@ -12,19 +12,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
12
12
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
13
13
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
14
14
|
};
|
|
15
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
16
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
17
|
+
};
|
|
15
18
|
var AgentModule_1;
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.AgentModule = exports.AgentService = void 0;
|
|
20
|
+
exports.AgentModule = exports.AgentService = exports.GUARDRAILS_SERVICE_TOKEN = void 0;
|
|
18
21
|
const core_1 = require("@hazeljs/core");
|
|
19
22
|
const agent_runtime_1 = require("./runtime/agent.runtime");
|
|
23
|
+
/** Token for optional GuardrailsService injection (from @hazeljs/guardrails) */
|
|
24
|
+
exports.GUARDRAILS_SERVICE_TOKEN = 'GuardrailsService';
|
|
20
25
|
/**
|
|
21
26
|
* Agent Service
|
|
22
27
|
* Injectable service for agent runtime
|
|
23
28
|
*/
|
|
24
29
|
let AgentService = class AgentService {
|
|
25
|
-
constructor(config = {}) {
|
|
30
|
+
constructor(guardrailsService, config = {}) {
|
|
26
31
|
const moduleOpts = AgentModule.getOptions();
|
|
27
|
-
const runtimeConfig =
|
|
32
|
+
const runtimeConfig = {
|
|
33
|
+
...(moduleOpts.runtime || config),
|
|
34
|
+
guardrailsService: guardrailsService ?? moduleOpts.runtime?.guardrailsService ?? config.guardrailsService,
|
|
35
|
+
};
|
|
28
36
|
this.runtime = new agent_runtime_1.AgentRuntime(runtimeConfig);
|
|
29
37
|
// Register agents from module options
|
|
30
38
|
if (moduleOpts.agents) {
|
|
@@ -63,8 +71,9 @@ let AgentService = class AgentService {
|
|
|
63
71
|
};
|
|
64
72
|
exports.AgentService = AgentService;
|
|
65
73
|
exports.AgentService = AgentService = __decorate([
|
|
66
|
-
(0, core_1.
|
|
67
|
-
|
|
74
|
+
(0, core_1.Service)(),
|
|
75
|
+
__param(0, (0, core_1.Inject)(exports.GUARDRAILS_SERVICE_TOKEN)),
|
|
76
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
68
77
|
], AgentService);
|
|
69
78
|
/**
|
|
70
79
|
* Agent Module
|
package/dist/agent.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.module.js","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"agent.module.js","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,wCAA6D;AAC7D,2DAA2E;AAK3E,gFAAgF;AACnE,QAAA,wBAAwB,GAAG,mBAAmB,CAAC;AAU5D;;;GAGG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YAEE,iBAmBC,EACD,SAA6B,EAAE;QAE/B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAuB;YACxC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC;YACjC,iBAAiB,EACf,iBAAiB,IAAI,UAAU,CAAC,OAAO,EAAE,iBAAiB,IAAI,MAAM,CAAC,iBAAiB;SACzF,CAAC;QACF,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;AAlFY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,cAAO,GAAE;IAKL,WAAA,IAAA,aAAM,EAAC,gCAAwB,CAAC,CAAA;;GAJxB,YAAY,CAkFxB;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,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @Delegate Decorator
|
|
3
|
+
*
|
|
4
|
+
* Marks a method on an agent class as a delegation point to another agent.
|
|
5
|
+
* The method body is replaced at runtime by `AgentRuntime.registerAgentInstance()`,
|
|
6
|
+
* which patches it with an actual call to `runtime.execute(targetAgent, input)`.
|
|
7
|
+
*
|
|
8
|
+
* This lets the LLM naturally "call" other agents as if they were tools —
|
|
9
|
+
* the agent-to-agent communication is completely transparent to the LLM.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* @Agent({
|
|
14
|
+
* name: 'orchestrator',
|
|
15
|
+
* description: 'Orchestrates research and writing tasks',
|
|
16
|
+
* })
|
|
17
|
+
* class OrchestratorAgent {
|
|
18
|
+
* // The LLM can call this as a tool; it internally runs ResearchAgent
|
|
19
|
+
* @Delegate({
|
|
20
|
+
* agent: 'ResearchAgent',
|
|
21
|
+
* description: 'Research a topic in depth and return key findings',
|
|
22
|
+
* inputField: 'query',
|
|
23
|
+
* })
|
|
24
|
+
* async researchTopic(query: string): Promise<string> {
|
|
25
|
+
* return ''; // body is replaced at runtime
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* // The LLM can call this as a tool; it internally runs WriterAgent
|
|
29
|
+
* @Delegate({
|
|
30
|
+
* agent: 'WriterAgent',
|
|
31
|
+
* description: 'Write a professional article based on provided research',
|
|
32
|
+
* inputField: 'content',
|
|
33
|
+
* })
|
|
34
|
+
* async writeArticle(content: string): Promise<string> {
|
|
35
|
+
* return ''; // body is replaced at runtime
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* Note: @Delegate implicitly registers the method as a @Tool.
|
|
41
|
+
* You do NOT need to add @Tool separately.
|
|
42
|
+
*/
|
|
43
|
+
import 'reflect-metadata';
|
|
44
|
+
import { DelegateConfig } from '../graph/agent-graph.types';
|
|
45
|
+
/**
|
|
46
|
+
* Decorate a method to delegate its execution to another agent.
|
|
47
|
+
*
|
|
48
|
+
* When `AgentRuntime.registerAgentInstance()` is called, it patches each
|
|
49
|
+
* `@Delegate` method on the instance to actually call
|
|
50
|
+
* `runtime.execute(config.agent, input)` where `input` is extracted from the
|
|
51
|
+
* tool call arguments using `config.inputField` (default: `'input'`).
|
|
52
|
+
*/
|
|
53
|
+
export declare function Delegate(config: DelegateConfig): MethodDecorator;
|
|
54
|
+
/**
|
|
55
|
+
* Retrieve the `@Delegate` config from a method.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getDelegateMetadata(target: object, propertyKey: string): DelegateConfig | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Get the names of all `@Delegate`-decorated methods on a class.
|
|
60
|
+
*/
|
|
61
|
+
export declare function getDelegatedMethods(agentClass: new (...args: unknown[]) => unknown): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Check if a method has the `@Delegate` decorator.
|
|
64
|
+
*/
|
|
65
|
+
export declare function isDelegate(target: object, propertyKey: string): boolean;
|
|
66
|
+
//# sourceMappingURL=delegate.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/delegate.decorator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAkChE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,cAAc,GAAG,SAAS,CAE5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,MAAM,EAAE,CAE7F;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEvE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @Delegate Decorator
|
|
4
|
+
*
|
|
5
|
+
* Marks a method on an agent class as a delegation point to another agent.
|
|
6
|
+
* The method body is replaced at runtime by `AgentRuntime.registerAgentInstance()`,
|
|
7
|
+
* which patches it with an actual call to `runtime.execute(targetAgent, input)`.
|
|
8
|
+
*
|
|
9
|
+
* This lets the LLM naturally "call" other agents as if they were tools —
|
|
10
|
+
* the agent-to-agent communication is completely transparent to the LLM.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* @Agent({
|
|
15
|
+
* name: 'orchestrator',
|
|
16
|
+
* description: 'Orchestrates research and writing tasks',
|
|
17
|
+
* })
|
|
18
|
+
* class OrchestratorAgent {
|
|
19
|
+
* // The LLM can call this as a tool; it internally runs ResearchAgent
|
|
20
|
+
* @Delegate({
|
|
21
|
+
* agent: 'ResearchAgent',
|
|
22
|
+
* description: 'Research a topic in depth and return key findings',
|
|
23
|
+
* inputField: 'query',
|
|
24
|
+
* })
|
|
25
|
+
* async researchTopic(query: string): Promise<string> {
|
|
26
|
+
* return ''; // body is replaced at runtime
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* // The LLM can call this as a tool; it internally runs WriterAgent
|
|
30
|
+
* @Delegate({
|
|
31
|
+
* agent: 'WriterAgent',
|
|
32
|
+
* description: 'Write a professional article based on provided research',
|
|
33
|
+
* inputField: 'content',
|
|
34
|
+
* })
|
|
35
|
+
* async writeArticle(content: string): Promise<string> {
|
|
36
|
+
* return ''; // body is replaced at runtime
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* Note: @Delegate implicitly registers the method as a @Tool.
|
|
42
|
+
* You do NOT need to add @Tool separately.
|
|
43
|
+
*/
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.Delegate = Delegate;
|
|
46
|
+
exports.getDelegateMetadata = getDelegateMetadata;
|
|
47
|
+
exports.getDelegatedMethods = getDelegatedMethods;
|
|
48
|
+
exports.isDelegate = isDelegate;
|
|
49
|
+
require("reflect-metadata");
|
|
50
|
+
const agent_graph_types_1 = require("../graph/agent-graph.types");
|
|
51
|
+
const tool_decorator_1 = require("./tool.decorator");
|
|
52
|
+
/**
|
|
53
|
+
* Decorate a method to delegate its execution to another agent.
|
|
54
|
+
*
|
|
55
|
+
* When `AgentRuntime.registerAgentInstance()` is called, it patches each
|
|
56
|
+
* `@Delegate` method on the instance to actually call
|
|
57
|
+
* `runtime.execute(config.agent, input)` where `input` is extracted from the
|
|
58
|
+
* tool call arguments using `config.inputField` (default: `'input'`).
|
|
59
|
+
*/
|
|
60
|
+
function Delegate(config) {
|
|
61
|
+
return (target, propertyKey, descriptor) => {
|
|
62
|
+
const methodName = String(propertyKey);
|
|
63
|
+
// Store delegate-specific metadata
|
|
64
|
+
Reflect.defineMetadata(agent_graph_types_1.DELEGATE_METADATA_KEY, config, target, propertyKey);
|
|
65
|
+
// Track all delegated methods on the class for fast lookup
|
|
66
|
+
const existing = Reflect.getMetadata(agent_graph_types_1.DELEGATES_LIST_KEY, target.constructor) ?? [];
|
|
67
|
+
if (!existing.includes(methodName)) {
|
|
68
|
+
existing.push(methodName);
|
|
69
|
+
Reflect.defineMetadata(agent_graph_types_1.DELEGATES_LIST_KEY, existing, target.constructor);
|
|
70
|
+
}
|
|
71
|
+
// Also register as a @Tool so the LLM sees it in the tool list.
|
|
72
|
+
// The parameter list mirrors how the LLM will call it.
|
|
73
|
+
const inputField = config.inputField ?? 'input';
|
|
74
|
+
const toolDecorator = (0, tool_decorator_1.Tool)({
|
|
75
|
+
name: config.agent,
|
|
76
|
+
description: config.description,
|
|
77
|
+
parameters: [
|
|
78
|
+
{
|
|
79
|
+
name: inputField,
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: `Input for ${config.agent}`,
|
|
82
|
+
required: true,
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
toolDecorator(target, propertyKey, descriptor);
|
|
87
|
+
return descriptor;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Retrieve the `@Delegate` config from a method.
|
|
92
|
+
*/
|
|
93
|
+
function getDelegateMetadata(target, propertyKey) {
|
|
94
|
+
return Reflect.getMetadata(agent_graph_types_1.DELEGATE_METADATA_KEY, target, propertyKey);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get the names of all `@Delegate`-decorated methods on a class.
|
|
98
|
+
*/
|
|
99
|
+
function getDelegatedMethods(agentClass) {
|
|
100
|
+
return Reflect.getMetadata(agent_graph_types_1.DELEGATES_LIST_KEY, agentClass) ?? [];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if a method has the `@Delegate` decorator.
|
|
104
|
+
*/
|
|
105
|
+
function isDelegate(target, propertyKey) {
|
|
106
|
+
return Reflect.hasMetadata(agent_graph_types_1.DELEGATE_METADATA_KEY, target, propertyKey);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=delegate.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.decorator.js","sourceRoot":"","sources":["../../src/decorators/delegate.decorator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;;AAkBH,4BAkCC;AAKD,kDAKC;AAKD,kDAEC;AAKD,gCAEC;AA1ED,4BAA0B;AAC1B,kEAIoC;AACpC,qDAAwC;AAExC;;;;;;;GAOG;AACH,SAAgB,QAAQ,CAAC,MAAsB;IAC7C,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,mCAAmC;QACnC,OAAO,CAAC,cAAc,CAAC,yCAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE3E,2DAA2D;QAC3D,MAAM,QAAQ,GAAa,OAAO,CAAC,WAAW,CAAC,sCAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO,CAAC,cAAc,CAAC,sCAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QAED,gEAAgE;QAChE,uDAAuD;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC;QAChD,MAAM,aAAa,GAAG,IAAA,qBAAI,EAAC;YACzB,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa,MAAM,CAAC,KAAK,EAAE;oBACxC,QAAQ,EAAE,IAAI;iBACf;aACF;SACF,CAAC,CAAC;QAEH,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAE/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,MAAc,EACd,WAAmB;IAEnB,OAAO,OAAO,CAAC,WAAW,CAAC,yCAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,UAA+C;IACjF,OAAO,OAAO,CAAC,WAAW,CAAC,sCAAkB,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,WAAmB;IAC5D,OAAO,OAAO,CAAC,WAAW,CAAC,yCAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { ToolExecutor } from './tool.executor';
|
|
|
9
9
|
import { ToolRegistry } from '../registry/tool.registry';
|
|
10
10
|
import { AgentEventType } from '../types/event.types';
|
|
11
11
|
import { LLMProvider } from '../types/llm.types';
|
|
12
|
+
import '../prompts/agent-system.prompt';
|
|
12
13
|
/**
|
|
13
14
|
* Agent Executor
|
|
14
15
|
* Implements the core agent execution loop
|
|
@@ -1 +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;
|
|
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,OAAO,gCAAgC,CAAC;AAGxC;;;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;IA0CzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmCnB;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBhF;;OAEG;IACH,OAAO,CAAC,SAAS;CAKlB"}
|
|
@@ -8,6 +8,9 @@ exports.AgentExecutor = void 0;
|
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
const agent_types_1 = require("../types/agent.types");
|
|
10
10
|
const event_types_1 = require("../types/event.types");
|
|
11
|
+
const prompts_1 = require("@hazeljs/prompts");
|
|
12
|
+
require("../prompts/agent-system.prompt");
|
|
13
|
+
const agent_system_prompt_1 = require("../prompts/agent-system.prompt");
|
|
11
14
|
/**
|
|
12
15
|
* Agent Executor
|
|
13
16
|
* Implements the core agent execution loop
|
|
@@ -238,11 +241,11 @@ class AgentExecutor {
|
|
|
238
241
|
};
|
|
239
242
|
}
|
|
240
243
|
const result = await this.toolExecutor.execute(tool, action.toolInput, context.agentId, context.sessionId, context.userId);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
// Store as assistant message summarizing the tool call + result (OpenAI requires tool
|
|
245
|
+
// messages to follow assistant messages with tool_calls; we avoid that format to keep
|
|
246
|
+
// storage simple and ensure the LLM receives the tool result context)
|
|
247
|
+
const toolSummary = `[Tool: ${action.toolName}]\nInput: ${JSON.stringify(action.toolInput)}\nOutput: ${JSON.stringify(result.output)}`;
|
|
248
|
+
await this.unwrap(this.stateManager.addMessage(context.executionId, 'assistant', toolSummary));
|
|
246
249
|
return {
|
|
247
250
|
success: result.success,
|
|
248
251
|
output: result.output,
|
|
@@ -256,12 +259,18 @@ class AgentExecutor {
|
|
|
256
259
|
* Build prompt for LLM
|
|
257
260
|
*/
|
|
258
261
|
buildPrompt(context) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
+
const basePrompt = context.metadata?.systemPrompt || 'You are a helpful AI agent.';
|
|
263
|
+
const description = context.metadata?.agentDescription || '';
|
|
264
|
+
const ragContext = context.ragContext && context.ragContext.length > 0 ? context.ragContext.join('\n\n') : '';
|
|
265
|
+
let systemPrompt;
|
|
266
|
+
if (description || ragContext) {
|
|
267
|
+
systemPrompt = prompts_1.PromptRegistry.get(agent_system_prompt_1.AGENT_SYSTEM_KEY)
|
|
268
|
+
.render({ systemPrompt: basePrompt, description, ragContext })
|
|
269
|
+
.replace(/\n\nAgent description: \n/, '\n')
|
|
270
|
+
.replace(/\n\nRelevant context:\n$/, '');
|
|
262
271
|
}
|
|
263
|
-
|
|
264
|
-
systemPrompt
|
|
272
|
+
else {
|
|
273
|
+
systemPrompt = basePrompt;
|
|
265
274
|
}
|
|
266
275
|
const messages = context.memory.conversationHistory.map((msg) => ({
|
|
267
276
|
role: msg.role,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.executor.js","sourceRoot":"","sources":["../../src/executor/agent.executor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAoC;AACpC,sDAQ8B;AAK9B,sDAAsD;
|
|
1
|
+
{"version":3,"file":"agent.executor.js","sourceRoot":"","sources":["../../src/executor/agent.executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,17 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { ToolExecutionResult, ToolApprovalRequest, ToolMetadata } from '../types/tool.types';
|
|
6
6
|
import { AgentEventType } from '../types/event.types';
|
|
7
|
+
import type { IGuardrailsService } from '../types/agent.types';
|
|
7
8
|
/**
|
|
8
9
|
* Tool Executor
|
|
9
10
|
* Handles tool execution with approval and retry logic
|
|
10
11
|
*/
|
|
11
12
|
export declare class ToolExecutor {
|
|
12
13
|
private eventEmitter?;
|
|
14
|
+
private guardrailsService?;
|
|
13
15
|
private pendingApprovals;
|
|
14
16
|
private executionContexts;
|
|
15
|
-
constructor(eventEmitter?: ((type: AgentEventType, data: unknown) => void) | undefined);
|
|
17
|
+
constructor(eventEmitter?: ((type: AgentEventType, data: unknown) => void) | undefined, guardrailsService?: IGuardrailsService | undefined);
|
|
16
18
|
/**
|
|
17
19
|
* Execute a tool
|
|
18
20
|
*/
|
|
@@ -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;
|
|
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;AAE/D;;;GAGG;AACH,qBAAa,YAAY;IAKrB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAAC;IAL5B,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,iBAAiB,CAAgD;gBAG/D,YAAY,CAAC,GAAE,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,aAAA,EAC5D,iBAAiB,CAAC,EAAE,kBAAkB,YAAA;IAGhD;;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;IAqH/B;;OAEG;YACW,gBAAgB;IAwB9B;;OAEG;YACW,kBAAkB;IAiChC;;OAEG;YACW,eAAe;IA+D7B;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAS7D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOxC;;OAEG;IACH,mBAAmB,IAAI,mBAAmB,EAAE;IAI5C;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -13,8 +13,9 @@ const event_types_1 = require("../types/event.types");
|
|
|
13
13
|
* Handles tool execution with approval and retry logic
|
|
14
14
|
*/
|
|
15
15
|
class ToolExecutor {
|
|
16
|
-
constructor(eventEmitter) {
|
|
16
|
+
constructor(eventEmitter, guardrailsService) {
|
|
17
17
|
this.eventEmitter = eventEmitter;
|
|
18
|
+
this.guardrailsService = guardrailsService;
|
|
18
19
|
this.pendingApprovals = new Map();
|
|
19
20
|
this.executionContexts = new Map();
|
|
20
21
|
}
|
|
@@ -40,6 +41,28 @@ class ToolExecutor {
|
|
|
40
41
|
input,
|
|
41
42
|
});
|
|
42
43
|
try {
|
|
44
|
+
if (this.guardrailsService) {
|
|
45
|
+
const inputResult = this.guardrailsService.checkInput(input);
|
|
46
|
+
if (!inputResult.allowed) {
|
|
47
|
+
context.status = tool_types_1.ToolExecutionStatus.FAILED;
|
|
48
|
+
context.completedAt = new Date();
|
|
49
|
+
context.duration = Date.now() - startTime;
|
|
50
|
+
this.emitEvent(event_types_1.AgentEventType.TOOL_EXECUTION_FAILED, {
|
|
51
|
+
toolName: tool.name,
|
|
52
|
+
input,
|
|
53
|
+
error: inputResult.blockedReason ?? 'Input blocked by guardrails',
|
|
54
|
+
duration: context.duration,
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
error: new Error(inputResult.blockedReason ?? 'Input blocked by guardrails'),
|
|
59
|
+
duration: context.duration,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (inputResult.modified !== undefined) {
|
|
63
|
+
Object.assign(input, inputResult.modified);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
43
66
|
if (tool.requiresApproval) {
|
|
44
67
|
const approved = await this.requestApproval(tool, input, agentId, executionId);
|
|
45
68
|
if (!approved) {
|
|
@@ -125,12 +148,20 @@ class ToolExecutor {
|
|
|
125
148
|
async executeWithTimeout(tool, input, timeout) {
|
|
126
149
|
let timeoutId;
|
|
127
150
|
try {
|
|
128
|
-
|
|
151
|
+
const result = await Promise.race([
|
|
129
152
|
tool.method.call(tool.target, input),
|
|
130
153
|
new Promise((_, reject) => {
|
|
131
154
|
timeoutId = setTimeout(() => reject(new Error(`Tool execution timeout after ${timeout}ms`)), timeout);
|
|
132
155
|
}),
|
|
133
156
|
]);
|
|
157
|
+
if (this.guardrailsService && result !== undefined && result !== null) {
|
|
158
|
+
const outputResult = this.guardrailsService.checkOutput(result);
|
|
159
|
+
if (!outputResult.allowed) {
|
|
160
|
+
throw new Error(outputResult.blockedReason ?? 'Output blocked by guardrails');
|
|
161
|
+
}
|
|
162
|
+
return outputResult.modified ?? result;
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
134
165
|
}
|
|
135
166
|
finally {
|
|
136
167
|
if (timeoutId) {
|
|
@@ -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":"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"}
|