@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.
Files changed (91) hide show
  1. package/IMPLEMENTATION_SUMMARY.md +19 -19
  2. package/PERSISTENCE.md +49 -0
  3. package/PRODUCTION_READINESS.md +42 -15
  4. package/QUICKSTART.md +20 -0
  5. package/README.md +44 -5
  6. package/STATE_VS_MEMORY.md +20 -3
  7. package/dist/agent.module.d.ts +23 -0
  8. package/dist/agent.module.d.ts.map +1 -1
  9. package/dist/agent.module.js +54 -1
  10. package/dist/agent.module.js.map +1 -1
  11. package/dist/approval/approval-store.interface.d.ts +18 -0
  12. package/dist/approval/approval-store.interface.d.ts.map +1 -0
  13. package/dist/approval/approval-store.interface.js +6 -0
  14. package/dist/approval/approval-store.interface.js.map +1 -0
  15. package/dist/approval/create-approval-store.d.ts +8 -0
  16. package/dist/approval/create-approval-store.d.ts.map +1 -0
  17. package/dist/approval/create-approval-store.js +15 -0
  18. package/dist/approval/create-approval-store.js.map +1 -0
  19. package/dist/approval/in-memory-approval.store.d.ts +22 -0
  20. package/dist/approval/in-memory-approval.store.d.ts.map +1 -0
  21. package/dist/approval/in-memory-approval.store.js +64 -0
  22. package/dist/approval/in-memory-approval.store.js.map +1 -0
  23. package/dist/approval/redis-approval.store.d.ts +34 -0
  24. package/dist/approval/redis-approval.store.d.ts.map +1 -0
  25. package/dist/approval/redis-approval.store.js +122 -0
  26. package/dist/approval/redis-approval.store.js.map +1 -0
  27. package/dist/context/agent.context.d.ts +1 -1
  28. package/dist/context/agent.context.d.ts.map +1 -1
  29. package/dist/context/agent.context.js +4 -2
  30. package/dist/context/agent.context.js.map +1 -1
  31. package/dist/events/event.emitter.d.ts +5 -0
  32. package/dist/events/event.emitter.d.ts.map +1 -1
  33. package/dist/events/event.emitter.js +12 -3
  34. package/dist/events/event.emitter.js.map +1 -1
  35. package/dist/executor/agent.executor.d.ts +9 -1
  36. package/dist/executor/agent.executor.d.ts.map +1 -1
  37. package/dist/executor/agent.executor.js +23 -3
  38. package/dist/executor/agent.executor.js.map +1 -1
  39. package/dist/executor/tool.executor.d.ts +15 -31
  40. package/dist/executor/tool.executor.d.ts.map +1 -1
  41. package/dist/executor/tool.executor.js +56 -78
  42. package/dist/executor/tool.executor.js.map +1 -1
  43. package/dist/index.d.ts +7 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +7 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/runtime/agent.runtime.d.ts +13 -0
  48. package/dist/runtime/agent.runtime.d.ts.map +1 -1
  49. package/dist/runtime/agent.runtime.js +43 -9
  50. package/dist/runtime/agent.runtime.js.map +1 -1
  51. package/dist/state/create-state-manager.d.ts +38 -0
  52. package/dist/state/create-state-manager.d.ts.map +1 -0
  53. package/dist/state/create-state-manager.js +148 -0
  54. package/dist/state/create-state-manager.js.map +1 -0
  55. package/dist/state/database-state.manager.d.ts +2 -3
  56. package/dist/state/database-state.manager.d.ts.map +1 -1
  57. package/dist/state/database-state.manager.js.map +1 -1
  58. package/dist/state/redis-client.types.d.ts +38 -0
  59. package/dist/state/redis-client.types.d.ts.map +1 -0
  60. package/dist/state/redis-client.types.js +3 -0
  61. package/dist/state/redis-client.types.js.map +1 -0
  62. package/dist/state/redis-state.manager.d.ts +2 -3
  63. package/dist/state/redis-state.manager.d.ts.map +1 -1
  64. package/dist/state/redis-state.manager.js +1 -1
  65. package/dist/state/redis-state.manager.js.map +1 -1
  66. package/dist/testing/mocks/hazeljs-eval.d.ts +7 -0
  67. package/dist/testing/mocks/hazeljs-eval.d.ts.map +1 -0
  68. package/dist/testing/mocks/hazeljs-eval.js +19 -0
  69. package/dist/testing/mocks/hazeljs-eval.js.map +1 -0
  70. package/dist/types/event.types.d.ts +1 -0
  71. package/dist/types/event.types.d.ts.map +1 -1
  72. package/dist/types/event.types.js +1 -0
  73. package/dist/types/event.types.js.map +1 -1
  74. package/dist/types/observability.types.d.ts +13 -0
  75. package/dist/types/observability.types.d.ts.map +1 -0
  76. package/dist/types/observability.types.js +6 -0
  77. package/dist/types/observability.types.js.map +1 -0
  78. package/dist/utils/agent-tracing.d.ts +10 -0
  79. package/dist/utils/agent-tracing.d.ts.map +1 -0
  80. package/dist/utils/agent-tracing.js +114 -0
  81. package/dist/utils/agent-tracing.js.map +1 -0
  82. package/dist/utils/rate-limiter.d.ts +6 -30
  83. package/dist/utils/rate-limiter.d.ts.map +1 -1
  84. package/dist/utils/rate-limiter.js +21 -58
  85. package/dist/utils/rate-limiter.js.map +1 -1
  86. package/dist/utils/retry.d.ts +3 -21
  87. package/dist/utils/retry.d.ts.map +1 -1
  88. package/dist/utils/retry.js +37 -69
  89. package/dist/utils/retry.js.map +1 -1
  90. package/package.json +23 -13
  91. package/tsconfig.jest.json +15 -0
@@ -315,36 +315,36 @@ const result = await runtime.execute('chat-agent', message, {
315
315
 
316
316
  **Benefits**: Memory, tools, state, observability, resumable
317
317
 
318
- ## 🚀 Production Considerations
318
+ ## Production Considerations (v1.0.1+)
319
319
 
320
- ### Current Implementation
320
+ ### Shipped persistence
321
321
 
322
- - In-memory state (Map-based)
323
- - Single process
324
- - No distributed coordination
322
+ - **State**: `AgentStateManager`, `RedisStateManager`, `DatabaseStateManager`
323
+ - **Approvals**: `InMemoryApprovalStore`, `RedisApprovalStore`
324
+ - **Module bootstrap**: `AgentModule.forRootAsync({ redis: { url } })`
325
325
 
326
- ### Production Recommendations
326
+ ### Further recommendations
327
327
 
328
- 1. **State Persistence**: Replace Map with Redis/Database
329
- 2. **Distributed Approvals**: Use message queue
330
- 3. **Execution Queue**: Use job queue for long-running agents
331
- 4. **Event Bus**: Replace in-memory emitter with distributed bus
328
+ 1. **Execution queue**: Job queue for long-running agents (future `@hazeljs/flow`)
329
+ 2. **Event bus**: Distributed event bus for cross-service observability
330
+ 3. **Observability**: `observabilityProvider` for OTel spans
332
331
 
333
- ### Scaling Example
332
+ ### Scaling example
334
333
 
335
334
  ```typescript
336
- class RedisStateManager extends AgentStateManager {
337
- async getContext(executionId: string) {
338
- return redis.get(`agent:context:${executionId}`);
339
- }
340
- }
335
+ import { AgentModule } from '@hazeljs/agent';
336
+ import { createClient } from 'redis';
341
337
 
342
- const runtime = new AgentRuntime({
343
- stateManager: new RedisStateManager(),
338
+ const redis = createClient({ url: process.env.REDIS_URL });
339
+ await redis.connect();
340
+
341
+ await AgentModule.forRootAsync({
342
+ redis: { client: redis },
343
+ useRedisApprovals: true,
344
344
  });
345
345
  ```
346
346
 
347
- ## 📚 Documentation
347
+ ## Documentation
348
348
 
349
349
  - **README.md** - User-facing documentation with examples
350
350
  - **ARCHITECTURE.md** - Technical architecture deep-dive
package/PERSISTENCE.md CHANGED
@@ -26,6 +26,55 @@ The `@hazeljs/agent` package supports multiple persistence backends for agent ex
26
26
  - **Pros**: Durable, queryable, full audit trail
27
27
  - **Cons**: Slower than Redis, requires database setup
28
28
 
29
+ ## Environment-driven setup (v1.0+)
30
+
31
+ Use `createStateManagerFromEnv()` or `AgentModule.forRootAsync()` to pick Redis automatically from `REDIS_URL`:
32
+
33
+ ```typescript
34
+ import { AgentModule } from '@hazeljs/agent';
35
+
36
+ // Async bootstrap (connects Redis from REDIS_URL)
37
+ await AgentModule.forRootAsync({
38
+ stateBackend: process.env.AGENT_STATE_BACKEND as 'memory' | 'redis' | 'database',
39
+ redis: { url: process.env.REDIS_URL },
40
+ });
41
+
42
+ // Or sync when you already have a connected client
43
+ AgentModule.forRoot({
44
+ redis: { client: redisClient },
45
+ useRedisApprovals: true,
46
+ });
47
+ ```
48
+
49
+ Environment variables:
50
+
51
+ | Variable | Values | Default |
52
+ | --------------------- | ----------------------------- | --------------------------------------------- |
53
+ | `AGENT_STATE_BACKEND` | `memory`, `redis`, `database` | `memory` (or `redis` when `REDIS_URL` is set) |
54
+ | `REDIS_URL` | Redis connection URL | — |
55
+
56
+ Factory helpers:
57
+
58
+ ```typescript
59
+ import { createStateManager, createStateManagerFromEnv } from '@hazeljs/agent';
60
+
61
+ const syncManager = createStateManager({ backend: 'redis', redisClient });
62
+ const asyncManager = await createStateManagerFromEnv({ redisUrl: process.env.REDIS_URL });
63
+ ```
64
+
65
+ ### Durable tool approvals (1.0.1+)
66
+
67
+ Redis-backed approvals for multi-instance human-in-the-loop:
68
+
69
+ ```typescript
70
+ await AgentModule.forRootAsync({
71
+ redis: { url: process.env.REDIS_URL },
72
+ useRedisApprovals: true,
73
+ });
74
+ ```
75
+
76
+ Pass `redis.client` to `forRoot()` when you already have a connected client. Exports: `IApprovalStore`, `InMemoryApprovalStore`, `RedisApprovalStore`, `createApprovalStore`.
77
+
29
78
  ## Usage
30
79
 
31
80
  ### In-Memory (Default)
@@ -43,7 +43,7 @@ This document tracks the production readiness improvements made to `@hazeljs/age
43
43
 
44
44
  ### 4. Rate Limiting
45
45
 
46
- **Implementation**: `src/utils/rate-limiter.ts`
46
+ **Implementation**: `src/utils/rate-limiter.ts` (adapter over `@hazeljs/resilience` `TokenBucketLimiter`)
47
47
 
48
48
  - Token bucket algorithm for rate limiting
49
49
  - Configurable tokens per minute and burst size
@@ -95,7 +95,7 @@ console.log(runtime.getMetricsSummary());
95
95
 
96
96
  ### 7. Retry Logic
97
97
 
98
- **Implementation**: `src/utils/retry.ts`
98
+ **Implementation**: `src/utils/retry.ts` (adapter over `@hazeljs/resilience` `RetryPolicy`)
99
99
 
100
100
  - Exponential backoff with jitter
101
101
  - Configurable retry attempts and delays
@@ -112,7 +112,7 @@ const runtime = new AgentRuntime({
112
112
 
113
113
  ### 8. Circuit Breaker
114
114
 
115
- **Implementation**: `src/utils/circuit-breaker.ts`
115
+ **Implementation**: `@hazeljs/resilience` `CircuitBreaker` (used internally by `AgentRuntime`)
116
116
 
117
117
  - Three states: CLOSED, OPEN, HALF_OPEN
118
118
  - Automatic state transitions
@@ -123,11 +123,14 @@ const runtime = new AgentRuntime({
123
123
  **Usage**:
124
124
 
125
125
  ```typescript
126
+ import { CircuitBreakerError } from '@hazeljs/resilience';
127
+
126
128
  const runtime = new AgentRuntime({
127
129
  enableCircuitBreaker: true, // Enabled by default
128
130
  });
129
131
 
130
132
  const status = runtime.getCircuitBreakerStatus();
133
+ // Repeated failures throw CircuitBreakerError on execute()
131
134
  ```
132
135
 
133
136
  ### 9. Health Checks
@@ -161,19 +164,12 @@ console.log(health.status); // 'healthy' | 'degraded' | 'unhealthy'
161
164
  npm run benchmark
162
165
  ```
163
166
 
164
- ## 🚧 Remaining Tasks
165
-
166
- ### Additional Test Coverage
167
+ ## Remaining tasks (post-1.0.1)
167
168
 
168
- Create tests for remaining core components:
169
-
170
- - `tests/runtime/agent.runtime.test.ts`
171
- - `tests/executor/agent.executor.test.ts`
172
- - `tests/executor/tool.executor.test.ts`
173
- - `tests/state/agent.state.test.ts`
174
- - `tests/registry/agent.registry.test.ts`
175
- - `tests/context/agent.context.test.ts`
176
- - `tests/events/event.emitter.test.ts`
169
+ - Durable **A2A task store** (same Redis pattern as approvals)
170
+ - Full **`@hazeljs/flow`** integration for long-running workflows
171
+ - Typed DI token replacing global `__HAZELJS_AI_ENHANCED_SERVICE__`
172
+ - Cross-link agent OTel spans in `@hazeljs/observability` package docs
177
173
 
178
174
  ## 📋 Installation Instructions
179
175
 
@@ -203,6 +199,37 @@ npm run test:watch
203
199
  npm run build
204
200
  ```
205
201
 
202
+ ## ✅ v1.0 Production Hardening (2026)
203
+
204
+ ### Durable state & approvals
205
+
206
+ - `createStateManagerFromEnv()` / `createStateManager()` factory helpers
207
+ - `AgentModule.forRoot()` wires Redis when `redis.client` is provided; `forRootAsync()` connects via `REDIS_URL`
208
+ - `IApprovalStore` with `InMemoryApprovalStore` (dev) and `RedisApprovalStore` (multi-instance)
209
+ - Typed `RedisClientLike` / `PrismaClientLike` minimal interfaces for state managers
210
+
211
+ ### Resilience consolidation
212
+
213
+ - Local `retry.ts` and `rate-limiter.ts` delegate to `@hazeljs/resilience`
214
+ - Removed deprecated `src/utils/circuit-breaker.js` shim
215
+ - Circuit breaker integration tests through `AgentRuntime.execute()`
216
+
217
+ ### Observability
218
+
219
+ - Optional peer: `@hazeljs/observability` and `@opentelemetry/api`
220
+ - OTel spans: `agent.execute`, `agent.tool.execute`, `agent.llm`
221
+ - `trackLlmCost()` bridge when observability provider is configured
222
+
223
+ ### Error handling
224
+
225
+ - RAG failures emit `agent.rag.failed` instead of silent empty context
226
+ - `strictEventHandlers` on `AgentEventEmitter` surfaces handler errors in production
227
+ - LLM provider resolution logs error after 500ms timeout if `@hazeljs/ai` is not loaded
228
+
229
+ ### Integration tests
230
+
231
+ - `tests/integration/production-hardening.test.ts` — Redis state, approvals, circuit breaker, RAG errors
232
+
206
233
  ## 🎯 Coverage Goals
207
234
 
208
235
  - **Unit Test Coverage**: 80%+ (configured in jest.config.js)
package/QUICKSTART.md CHANGED
@@ -132,6 +132,26 @@ if (result.state === 'waiting_for_input') {
132
132
  }
133
133
  ```
134
134
 
135
+ ## Production setup
136
+
137
+ For multi-instance deployments, use Redis-backed state and approvals:
138
+
139
+ ```typescript
140
+ import { AgentModule } from '@hazeljs/agent';
141
+ import { createClient } from 'redis';
142
+
143
+ const redisClient = createClient({ url: process.env.REDIS_URL });
144
+ await redisClient.connect();
145
+
146
+ await AgentModule.forRootAsync({
147
+ redis: { client: redisClient },
148
+ useRedisApprovals: true,
149
+ runtime: { strictEventHandlers: process.env.NODE_ENV === 'production' },
150
+ });
151
+ ```
152
+
153
+ See [PERSISTENCE.md](./PERSISTENCE.md) for `AGENT_STATE_BACKEND` and factory helpers.
154
+
135
155
  ## Support
136
156
 
137
157
  - GitHub Issues: [Report bugs](https://github.com/hazeljs/hazeljs/issues)
package/README.md CHANGED
@@ -83,15 +83,15 @@ export class SupportAgent {
83
83
  ### 2. Set up the runtime
84
84
 
85
85
  ```typescript
86
- import { AgentRuntime } from '@hazeljs/agent';
86
+ import { AgentRuntime, AgentService } from '@hazeljs/agent';
87
87
  import { MemoryManager } from '@hazeljs/rag';
88
- import { AIService } from '@hazeljs/ai';
88
+ import { AIEnhancedService } from '@hazeljs/ai';
89
89
 
90
90
  const runtime = new AgentRuntime({
91
91
  memoryManager: new MemoryManager(/* ... */),
92
- llmProvider: new AIService({ provider: 'openai' }),
92
+ llmProvider: AgentService.createLLMProviderFromAI(new AIEnhancedService()),
93
93
  defaultMaxSteps: 10,
94
- enableObservability: true,
94
+ // Optional: pass observabilityProvider from @hazeljs/observability for OTel spans
95
95
  });
96
96
 
97
97
  const agent = new SupportAgent();
@@ -436,6 +436,41 @@ runtime.onAny((e) => console.log(e.type, e.data));
436
436
 
437
437
  ---
438
438
 
439
+ ## Production deployment (1.0.1+)
440
+
441
+ For multi-instance deployments, use Redis-backed state and durable approvals:
442
+
443
+ ```typescript
444
+ import { AgentModule } from '@hazeljs/agent';
445
+ import { createClient } from 'redis';
446
+
447
+ const redis = createClient({ url: process.env.REDIS_URL });
448
+ await redis.connect();
449
+
450
+ await AgentModule.forRootAsync({
451
+ redis: { client: redis },
452
+ useRedisApprovals: true,
453
+ runtime: {
454
+ strictEventHandlers: process.env.NODE_ENV === 'production',
455
+ observabilityProvider: myObservabilityProvider, // optional, from @hazeljs/observability
456
+ enableMetrics: true,
457
+ enableCircuitBreaker: true,
458
+ },
459
+ });
460
+ ```
461
+
462
+ **Environment variables:** `REDIS_URL`, `AGENT_STATE_BACKEND` (`memory` | `redis` | `database`)
463
+
464
+ **Factories:** `createStateManager`, `createStateManagerFromEnv`, `createApprovalStore`
465
+
466
+ **Observability:** Pass `observabilityProvider` for OpenTelemetry spans (`agent.execute`, `agent.tool.execute`, `agent.llm`). The `enableObservability` flag is reserved; spans require an injected provider.
467
+
468
+ **Resilience:** Circuit breaker and retry use `@hazeljs/resilience` internally.
469
+
470
+ See [PERSISTENCE.md](./PERSISTENCE.md), [PRODUCTION_READINESS.md](./PRODUCTION_READINESS.md), and [QUICKSTART.md](./QUICKSTART.md).
471
+
472
+ ---
473
+
439
474
  ## HazelJS Module Integration
440
475
 
441
476
  ```typescript
@@ -449,7 +484,11 @@ import { RagModule } from '@hazeljs/rag';
449
484
  /* ... */
450
485
  }),
451
486
  AgentModule.forRoot({
452
- runtime: { defaultMaxSteps: 10, enableObservability: true },
487
+ runtime: {
488
+ defaultMaxSteps: 10,
489
+ enableMetrics: true,
490
+ strictEventHandlers: process.env.NODE_ENV === 'production',
491
+ },
453
492
  agents: [SupportAgent, ResearchAgent, WriterAgent, OrchestratorAgent],
454
493
  }),
455
494
  ],
@@ -235,12 +235,29 @@ const runtime = new AgentRuntime({
235
235
  ### Production
236
236
 
237
237
  ```typescript
238
- // Redis for agent state (fast, distributed)
239
- // Vector store (Pinecone) for memory (semantic search)
240
- const stateManager = new RedisStateManager({ client: redisClient });
238
+ // Redis for agent state + durable approvals (multi-instance)
239
+ import { AgentModule } from '@hazeljs/agent';
240
+ import { createClient } from 'redis';
241
+
242
+ const redisClient = createClient({ url: process.env.REDIS_URL });
243
+ await redisClient.connect();
244
+
245
+ await AgentModule.forRootAsync({
246
+ redis: { client: redisClient },
247
+ useRedisApprovals: true,
248
+ });
249
+
250
+ // Vector store (Pinecone) for long-term memory (semantic search)
241
251
  const memoryStore = new VectorMemory(pineconeStore, embeddings);
242
252
  const memoryManager = new MemoryManager(memoryStore);
253
+ ```
254
+
255
+ Or wire managers manually:
243
256
 
257
+ ```typescript
258
+ import { RedisStateManager } from '@hazeljs/agent';
259
+
260
+ const stateManager = new RedisStateManager({ client: redisClient });
244
261
  const runtime = new AgentRuntime({
245
262
  stateManager, // ← Agent execution state
246
263
  memoryManager, // ← Long-term memory
@@ -5,6 +5,9 @@ import { SupervisorAgent } from './supervisor/supervisor';
5
5
  import { AgentEventType } from './types/event.types';
6
6
  import type { AgentContext, AgentExecutionResult, AgentStreamChunk } from './types/agent.types';
7
7
  import type { LLMStreamChunk } from './types/llm.types';
8
+ import { type AgentStateBackend, type CreateStateManagerOptions } from './state/create-state-manager';
9
+ import type { RedisClientLike, PrismaClientLike } from './state/redis-client.types';
10
+ import type { ObservabilityProvider } from './types/observability.types';
8
11
  type NewableFunction = new (...args: unknown[]) => unknown;
9
12
  /** Token for optional GuardrailsService injection (from @hazeljs/guardrails) */
10
13
  export declare const GUARDRAILS_SERVICE_TOKEN = "GuardrailsService";
@@ -15,6 +18,21 @@ export interface AgentModuleOptions {
15
18
  runtime?: AgentRuntimeConfig;
16
19
  agents?: NewableFunction[];
17
20
  autoDiscover?: boolean;
21
+ /** Pre-connected Redis client or URL (use forRootAsync when only url is available) */
22
+ redis?: {
23
+ client?: RedisClientLike;
24
+ url?: string;
25
+ };
26
+ /** Prisma client for database-backed state */
27
+ database?: {
28
+ prismaClient?: PrismaClientLike;
29
+ };
30
+ /** Override AGENT_STATE_BACKEND (memory | redis | database) */
31
+ stateBackend?: AgentStateBackend;
32
+ /** Use Redis-backed approval store when redis client is configured */
33
+ useRedisApprovals?: boolean;
34
+ /** Optional observability provider from @hazeljs/observability */
35
+ observabilityProvider?: ObservabilityProvider;
18
36
  }
19
37
  /**
20
38
  * Agent Service
@@ -100,6 +118,11 @@ export declare class AgentService {
100
118
  export declare class AgentModule {
101
119
  private static options;
102
120
  static forRoot(config?: AgentModuleOptions): typeof AgentModule;
121
+ /**
122
+ * Async module setup — connects Redis from REDIS_URL or redis.url before boot.
123
+ */
124
+ static forRootAsync(config?: AgentModuleOptions): Promise<typeof AgentModule>;
125
+ static buildStateManagerOptions(config: AgentModuleOptions): CreateStateManagerOptions;
103
126
  static getOptions(): AgentModuleOptions;
104
127
  /**
105
128
  * Create an LLM provider from AIEnhancedService
@@ -1 +1 @@
1
- {"version":3,"file":"agent.module.d.ts","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.module.d.ts","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ exports.AgentModule = exports.AgentService = exports.GUARDRAILS_SERVICE_TOKEN =
17
17
  const core_1 = require("@hazeljs/core");
18
18
  const agent_runtime_1 = require("./runtime/agent.runtime");
19
19
  const agent_decorator_1 = require("./decorators/agent.decorator");
20
+ const create_state_manager_1 = require("./state/create-state-manager");
20
21
  /** Token for optional GuardrailsService injection (from @hazeljs/guardrails) */
21
22
  exports.GUARDRAILS_SERVICE_TOKEN = 'GuardrailsService';
22
23
  /**
@@ -32,6 +33,15 @@ let AgentService = AgentService_1 = class AgentService {
32
33
  ...(moduleOpts.runtime || config),
33
34
  guardrailsService: guardrailsService ?? moduleOpts.runtime?.guardrailsService ?? config.guardrailsService,
34
35
  llmProvider: moduleOpts.runtime?.llmProvider ?? config.llmProvider,
36
+ observabilityProvider: moduleOpts.runtime?.observabilityProvider ??
37
+ moduleOpts.observabilityProvider ??
38
+ config.observabilityProvider,
39
+ stateManagerOptions: moduleOpts.runtime?.stateManagerOptions ??
40
+ config.stateManagerOptions ??
41
+ AgentModule.buildStateManagerOptions(moduleOpts),
42
+ useRedisApprovals: moduleOpts.runtime?.useRedisApprovals ??
43
+ moduleOpts.useRedisApprovals ??
44
+ config.useRedisApprovals,
35
45
  };
36
46
  this.runtime = new agent_runtime_1.AgentRuntime(runtimeConfig);
37
47
  // Defer agent discovery and LLM provider resolution until after all modules are loaded
@@ -55,6 +65,9 @@ let AgentService = AgentService_1 = class AgentService {
55
65
  else if (retryCount < 10) {
56
66
  setTimeout(() => this.resolveLLMProvider(retryCount + 1), 50);
57
67
  }
68
+ else {
69
+ core_1.logger.error('AgentService: LLM provider not available after 500ms. Load @hazeljs/ai or set runtime.llmProvider in AgentModule.forRoot().');
70
+ }
58
71
  }
59
72
  /**
60
73
  * Create an LLM provider adapter from AIEnhancedService
@@ -265,9 +278,49 @@ exports.AgentService = AgentService = AgentService_1 = __decorate([
265
278
  */
266
279
  let AgentModule = AgentModule_1 = class AgentModule {
267
280
  static forRoot(config = {}) {
268
- AgentModule_1.options = config;
281
+ const runtime = { ...(config.runtime ?? {}) };
282
+ if (!runtime.stateManager) {
283
+ try {
284
+ runtime.stateManager = (0, create_state_manager_1.createStateManager)(AgentModule_1.buildStateManagerOptions(config));
285
+ }
286
+ catch {
287
+ // resolveStateManager in AgentRuntime falls back to in-memory
288
+ }
289
+ }
290
+ runtime.stateManagerOptions =
291
+ runtime.stateManagerOptions ?? AgentModule_1.buildStateManagerOptions(config);
292
+ runtime.useRedisApprovals = runtime.useRedisApprovals ?? config.useRedisApprovals;
293
+ runtime.observabilityProvider = runtime.observabilityProvider ?? config.observabilityProvider;
294
+ AgentModule_1.options = { ...config, runtime };
269
295
  return AgentModule_1;
270
296
  }
297
+ /**
298
+ * Async module setup — connects Redis from REDIS_URL or redis.url before boot.
299
+ */
300
+ static async forRootAsync(config = {}) {
301
+ const runtime = { ...(config.runtime ?? {}) };
302
+ const baseOptions = AgentModule_1.buildStateManagerOptions(config);
303
+ if (!runtime.stateManager) {
304
+ const { stateManager, stateManagerOptions } = await (0, create_state_manager_1.resolveStateManagerFromEnv)(baseOptions);
305
+ runtime.stateManager = stateManager;
306
+ runtime.stateManagerOptions = stateManagerOptions;
307
+ }
308
+ else {
309
+ runtime.stateManagerOptions = baseOptions;
310
+ }
311
+ runtime.useRedisApprovals = runtime.useRedisApprovals ?? config.useRedisApprovals;
312
+ runtime.observabilityProvider = runtime.observabilityProvider ?? config.observabilityProvider;
313
+ AgentModule_1.options = { ...config, runtime };
314
+ return AgentModule_1;
315
+ }
316
+ static buildStateManagerOptions(config) {
317
+ return {
318
+ backend: config.stateBackend,
319
+ redisClient: config.redis?.client,
320
+ redisUrl: config.redis?.url,
321
+ prismaClient: config.database?.prismaClient,
322
+ };
323
+ }
271
324
  static getOptions() {
272
325
  return AgentModule_1.options;
273
326
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.module.js","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.module.js","sourceRoot":"","sources":["../src/agent.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Pluggable store for tool approval requests (supports multi-instance deployments).
3
+ */
4
+ import { ToolApprovalRequest } from '../types/tool.types';
5
+ export interface IApprovalStore {
6
+ create(request: ToolApprovalRequest): Promise<void> | void;
7
+ get(requestId: string): Promise<ToolApprovalRequest | undefined> | ToolApprovalRequest | undefined;
8
+ listPending(): Promise<ToolApprovalRequest[]> | ToolApprovalRequest[];
9
+ approve(requestId: string, approvedBy: string): Promise<boolean> | boolean;
10
+ reject(requestId: string): Promise<boolean> | boolean;
11
+ delete(requestId: string): Promise<void> | void;
12
+ }
13
+ export interface ApprovalWaitOptions {
14
+ requestId: string;
15
+ expiresAt: Date;
16
+ pollIntervalMs?: number;
17
+ }
18
+ //# sourceMappingURL=approval-store.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-store.interface.d.ts","sourceRoot":"","sources":["../../src/approval/approval-store.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3D,GAAG,CACD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC9E,WAAW,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC;IACtE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC3E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Pluggable store for tool approval requests (supports multi-instance deployments).
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=approval-store.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-store.interface.js","sourceRoot":"","sources":["../../src/approval/approval-store.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ import { IApprovalStore } from './approval-store.interface';
2
+ import type { RedisClientLike } from '../state/redis-client.types';
3
+ export interface CreateApprovalStoreOptions {
4
+ redisClient?: RedisClientLike;
5
+ useRedis?: boolean;
6
+ }
7
+ export declare function createApprovalStore(options?: CreateApprovalStoreOptions): IApprovalStore;
8
+ //# sourceMappingURL=create-approval-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-approval-store.d.ts","sourceRoot":"","sources":["../../src/approval/create-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,cAAc,CAQ5F"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createApprovalStore = createApprovalStore;
4
+ const in_memory_approval_store_1 = require("./in-memory-approval.store");
5
+ const redis_approval_store_1 = require("./redis-approval.store");
6
+ function createApprovalStore(options = {}) {
7
+ if (options.useRedis || options.redisClient) {
8
+ if (!options.redisClient) {
9
+ throw new Error('redisClient is required when useRedis is enabled for approval store.');
10
+ }
11
+ return new redis_approval_store_1.RedisApprovalStore({ client: options.redisClient });
12
+ }
13
+ return new in_memory_approval_store_1.InMemoryApprovalStore();
14
+ }
15
+ //# sourceMappingURL=create-approval-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-approval-store.js","sourceRoot":"","sources":["../../src/approval/create-approval-store.ts"],"names":[],"mappings":";;AAUA,kDAQC;AAjBD,yEAAmE;AACnE,iEAA4D;AAQ5D,SAAgB,mBAAmB,CAAC,UAAsC,EAAE;IAC1E,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,yCAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,gDAAqB,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { ToolApprovalRequest } from '../types/tool.types';
2
+ import { IApprovalStore } from './approval-store.interface';
3
+ /** In-process resolver for a pending approval wait. */
4
+ export interface ApprovalResolver {
5
+ resolve: (approved: boolean) => void;
6
+ timeoutId?: NodeJS.Timeout;
7
+ }
8
+ /**
9
+ * In-memory approval store (default for development and single-instance deployments).
10
+ */
11
+ export declare class InMemoryApprovalStore implements IApprovalStore {
12
+ private readonly requests;
13
+ readonly resolvers: Map<string, ApprovalResolver>;
14
+ create(request: ToolApprovalRequest): void;
15
+ get(requestId: string): ToolApprovalRequest | undefined;
16
+ listPending(): ToolApprovalRequest[];
17
+ approve(requestId: string, approvedBy: string): boolean;
18
+ reject(requestId: string): boolean;
19
+ delete(requestId: string): void;
20
+ registerResolver(requestId: string, resolver: ApprovalResolver): void;
21
+ }
22
+ //# sourceMappingURL=in-memory-approval.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-approval.store.d.ts","sourceRoot":"","sources":["../../src/approval/in-memory-approval.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,QAAQ,CAAC,SAAS,gCAAuC;IAEzD,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIvD,WAAW,IAAI,mBAAmB,EAAE;IAIpC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAgBvD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAelC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;CAGtE"}