@ai.ntellect/core 0.7.14 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +104 -44
  2. package/dist/graph/event-manager.d.ts +9 -1
  3. package/dist/graph/event-manager.d.ts.map +1 -1
  4. package/dist/graph/event-manager.js +115 -37
  5. package/dist/graph/event-manager.js.map +1 -1
  6. package/dist/graph/index.d.ts +20 -1
  7. package/dist/graph/index.d.ts.map +1 -1
  8. package/dist/graph/index.js +59 -10
  9. package/dist/graph/index.js.map +1 -1
  10. package/dist/graph/node.d.ts +0 -24
  11. package/dist/graph/node.d.ts.map +1 -1
  12. package/dist/graph/node.js +2 -71
  13. package/dist/graph/node.js.map +1 -1
  14. package/dist/graph/observer.d.ts +6 -87
  15. package/dist/graph/observer.d.ts.map +1 -1
  16. package/dist/graph/observer.js +3 -116
  17. package/dist/graph/observer.js.map +1 -1
  18. package/dist/index.d.ts +3 -6
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/interfaces/index.d.ts +10 -1
  23. package/dist/interfaces/index.d.ts.map +1 -1
  24. package/dist/interfaces/index.js.map +1 -1
  25. package/dist/modules/agent/agent.d.ts +35 -0
  26. package/dist/modules/agent/agent.d.ts.map +1 -0
  27. package/dist/modules/agent/agent.js +106 -0
  28. package/dist/modules/agent/agent.js.map +1 -0
  29. package/dist/modules/agent/base/executor.d.ts +51 -0
  30. package/dist/modules/agent/base/executor.d.ts.map +1 -0
  31. package/dist/modules/agent/base/executor.js +66 -0
  32. package/dist/modules/agent/base/executor.js.map +1 -0
  33. package/dist/modules/agent/base/index.d.ts +30 -0
  34. package/dist/modules/agent/base/index.d.ts.map +1 -0
  35. package/dist/modules/agent/base/index.js +100 -0
  36. package/dist/modules/agent/base/index.js.map +1 -0
  37. package/dist/modules/agent/generic-assistant.d.ts +20 -0
  38. package/dist/modules/agent/generic-assistant.d.ts.map +1 -0
  39. package/dist/modules/agent/generic-assistant.js +89 -0
  40. package/dist/modules/agent/generic-assistant.js.map +1 -0
  41. package/dist/modules/agent/generic-executor.d.ts +57 -0
  42. package/dist/modules/agent/generic-executor.d.ts.map +1 -0
  43. package/dist/modules/agent/generic-executor.js +200 -0
  44. package/dist/modules/agent/generic-executor.js.map +1 -0
  45. package/dist/modules/agent/llm-factory.d.ts +19 -0
  46. package/dist/modules/agent/llm-factory.d.ts.map +1 -0
  47. package/dist/modules/agent/llm-factory.js +56 -0
  48. package/dist/modules/agent/llm-factory.js.map +1 -0
  49. package/dist/modules/agent/prompt-builder.d.ts +35 -0
  50. package/dist/modules/agent/prompt-builder.d.ts.map +1 -0
  51. package/dist/modules/agent/prompt-builder.js +76 -0
  52. package/dist/modules/agent/prompt-builder.js.map +1 -0
  53. package/dist/modules/memory/adapters/in-memory/index.d.ts.map +1 -1
  54. package/dist/modules/memory/adapters/in-memory/index.js +4 -3
  55. package/dist/modules/memory/adapters/in-memory/index.js.map +1 -1
  56. package/dist/modules/memory/adapters/meilisearch/index.d.ts.map +1 -1
  57. package/dist/modules/memory/adapters/meilisearch/index.js +7 -4
  58. package/dist/modules/memory/adapters/meilisearch/index.js.map +1 -1
  59. package/dist/modules/memory/adapters/redis/index.d.ts.map +1 -1
  60. package/dist/modules/memory/adapters/redis/index.js +2 -1
  61. package/dist/modules/memory/adapters/redis/index.js.map +1 -1
  62. package/dist/modules/nlp/engine.d.ts +126 -0
  63. package/dist/modules/nlp/engine.d.ts.map +1 -0
  64. package/dist/modules/nlp/engine.js +300 -0
  65. package/dist/modules/nlp/engine.js.map +1 -0
  66. package/dist/modules/nlp/index.d.ts +27 -0
  67. package/dist/modules/nlp/index.d.ts.map +1 -0
  68. package/dist/modules/nlp/index.js +56 -0
  69. package/dist/modules/nlp/index.js.map +1 -0
  70. package/dist/types/agent.d.ts +233 -0
  71. package/dist/types/agent.d.ts.map +1 -0
  72. package/dist/types/agent.js +29 -0
  73. package/dist/types/agent.js.map +1 -0
  74. package/dist/types/index.d.ts +72 -18
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/utils/generate-action-schema.d.ts.map +1 -1
  77. package/graph/event-manager.ts +135 -42
  78. package/graph/index.ts +57 -4
  79. package/graph/node.ts +2 -104
  80. package/graph/observer.ts +9 -215
  81. package/index.ts +4 -7
  82. package/interfaces/index.ts +12 -0
  83. package/modules/agent/agent.ts +108 -0
  84. package/modules/agent/base/executor.ts +100 -0
  85. package/modules/agent/base/index.ts +99 -0
  86. package/modules/agent/generic-assistant.ts +90 -0
  87. package/modules/agent/generic-executor.ts +259 -0
  88. package/modules/agent/llm-factory.ts +47 -0
  89. package/modules/agent/prompt-builder.ts +78 -0
  90. package/modules/memory/adapters/in-memory/index.ts +4 -3
  91. package/modules/memory/adapters/meilisearch/index.ts +7 -4
  92. package/modules/memory/adapters/redis/index.ts +2 -1
  93. package/modules/nlp/engine.ts +325 -0
  94. package/modules/nlp/index.ts +45 -0
  95. package/package.json +5 -2
  96. package/test/graph/index.test.ts +6 -4
  97. package/test/graph/node.test.ts +18 -14
  98. package/types/agent.ts +174 -0
  99. package/types/index.ts +74 -18
package/README.md CHANGED
@@ -5,10 +5,15 @@
5
5
  ## Features
6
6
 
7
7
  - **GraphFlow** – Graph-based execution engine for automating business processes
8
+ - **AI Agents** – Built-in support for LLM-powered agents with memory and tools
8
9
  - **Event-Driven** – Nodes can react to real-time events and trigger actions dynamically
9
10
  - **Modular** – Plug-and-play modules and adapters for memory, scheduling, and external APIs
10
11
  - **Extensible** – Custom nodes, adapters, and interactions with third-party services
11
12
  - **Observable** – Complete state and event monitoring
13
+ - **Type-Safe** – Built with TypeScript for robust type checking
14
+ - **Schema Validation** – Integrated Zod schema validation
15
+ - **Retry Mechanisms** – Built-in retry strategies for resilient workflows
16
+ - **Event Correlation** – Advanced event handling with correlation strategies
12
17
 
13
18
  ## Installation
14
19
 
@@ -31,70 +36,125 @@ npm -v
31
36
  npm install @ai.ntellect/core zod
32
37
  ```
33
38
 
34
- ## Example
39
+ ## Quick Start
40
+
41
+ ### 1. Basic Workflow
35
42
 
36
43
  ```typescript
37
44
  import { GraphFlow } from "@ai.ntellect/core";
38
45
  import { z } from "zod";
39
46
 
40
- // Definition of the context schema
41
- const ContextSchema = z.object({
42
- message: z.string(),
47
+ // Define schema
48
+ const EmailSchema = z.object({
49
+ to: z.string(),
50
+ subject: z.string(),
51
+ content: z.string(),
52
+ status: z.string().default("pending"),
43
53
  });
44
54
 
45
- type ContextSchema = typeof ContextSchema;
46
-
47
- // Definition of the graph
48
- const myGraph = new GraphFlow<ContextSchema>("TestGraph", {
49
- name: "TestGraph",
50
- context: { message: "Installation success" },
51
- schema: ContextSchema,
55
+ // Create workflow
56
+ const emailFlow = new GraphFlow("email", {
57
+ name: "email",
58
+ schema: EmailSchema,
59
+ context: {
60
+ to: "",
61
+ subject: "",
62
+ content: "",
63
+ status: "pending",
64
+ },
52
65
  nodes: [
53
66
  {
54
- name: "printMessage",
67
+ name: "send",
55
68
  execute: async (context) => {
56
- console.log(context.message);
69
+ console.log(`Sending email to ${context.to}`);
70
+ // Logic to send email
71
+ context.status = "sent";
57
72
  },
58
- next: [],
59
73
  },
60
74
  ],
61
75
  });
76
+ ```
77
+
78
+ ### 2. AI-Powered Assistant
79
+
80
+ ```typescript
81
+ import { Agent } from "@ai.ntellect/core";
82
+
83
+ const assistant = new Agent({
84
+ role: "Email Assistant",
85
+ goal: "Help users send emails efficiently",
86
+ backstory: "I am an AI assistant specialized in email communications",
87
+ tools: [emailFlow],
88
+ llmConfig: {
89
+ provider: "openai",
90
+ model: "gpt-4",
91
+ apiKey: "YOUR_API_KEY",
92
+ },
93
+ });
62
94
 
63
- // Execution of the graph
64
- (async () => {
65
- await myGraph.execute("printMessage");
66
- })();
95
+ // Use the assistant
96
+ const result = await assistant.process(
97
+ "Send an email to john@example.com about tomorrow's meeting"
98
+ );
67
99
  ```
68
100
 
69
- ## Features
101
+ ## Advanced Features
70
102
 
71
- ### Event handling
103
+ ### Event Handling
72
104
 
73
105
  ```typescript
74
- // Event-driven node
75
- {
76
- name: "waitForEvent",
77
- events: ["dataReceived"],
78
- execute: async (context, event) => {
79
- context.data = event.payload;
80
- }
81
- }
106
+ const workflow = new GraphFlow("notification", {
107
+ nodes: [
108
+ {
109
+ name: "waitForEvent",
110
+ events: ["emailSent"],
111
+ execute: async (context, event) => {
112
+ console.log(`Email sent to ${event.payload.recipient}`);
113
+ },
114
+ },
115
+ ],
116
+ });
82
117
 
83
118
  // Emit events
84
- graph.emit("dataReceived", { value: 42 });
119
+ workflow.emit("emailSent", { recipient: "john@example.com" });
85
120
  ```
86
121
 
87
- ### State observation
122
+ ### Retry Mechanisms
88
123
 
89
124
  ```typescript
90
- // Observe specific node
91
- graph.observe().node("myNode").subscribe(console.log);
125
+ const node = {
126
+ name: "sendEmail",
127
+ execute: async (context) => {
128
+ // Email sending logic
129
+ },
130
+ retry: {
131
+ maxAttempts: 3,
132
+ delay: 1000,
133
+ onRetryFailed: async (error, context) => {
134
+ console.error(`Failed to send email to ${context.to}`);
135
+ },
136
+ },
137
+ };
138
+ ```
92
139
 
93
- // Observe specific properties
94
- graph.observe().property("counter").subscribe(console.log);
140
+ ### State Observation
95
141
 
96
- // Observe events
97
- graph.observe().event("nodeCompleted").subscribe(console.log);
142
+ ```typescript
143
+ // Observe specific properties
144
+ workflow
145
+ .observe()
146
+ .property("status")
147
+ .subscribe((status) => {
148
+ console.log(`Email status changed to: ${status}`);
149
+ });
150
+
151
+ // Observe specific nodes
152
+ workflow
153
+ .observe()
154
+ .node("sendEmail")
155
+ .subscribe((state) => {
156
+ console.log(`Send email node state:`, state);
157
+ });
98
158
  ```
99
159
 
100
160
  ## Documentation
@@ -103,14 +163,14 @@ For complete documentation, visit our [GitBook](https://ai-ntellect.gitbook.io/c
103
163
 
104
164
  ## Contributing
105
165
 
106
- Contributions are welcome! To suggest an improvement or report an issue:
166
+ We welcome contributions! To get started:
167
+
168
+ 1. Fork the repository
169
+ 2. Create a feature branch
170
+ 3. Submit a pull request
107
171
 
108
- - Join our [Discord community](https://discord.gg/kEc5gWXJ)
109
- - Explore the [GitBook documentation](https://ai-ntellect.gitbook.io/core)
110
- - Open an issue on GitHub
172
+ Join our [Discord community](https://discord.gg/kEc5gWXJ) for discussions and support.
111
173
 
112
- ## Useful links
174
+ ## License
113
175
 
114
- - Documentation: [GitBook](https://ai-ntellect.gitbook.io/core)
115
- - Community: [Discord](https://discord.gg/kEc5gWXJ)
116
- - GitHub Repository: [@ai.ntellect/core](https://github.com/ai-ntellect/core)
176
+ MIT
@@ -1,6 +1,6 @@
1
1
  import { ZodSchema } from "zod";
2
2
  import { IEventEmitter } from "../interfaces";
3
- import { GraphContext, GraphEvent, GraphNodeConfig } from "../types";
3
+ import { EventConfig, GraphContext, GraphEvent, GraphNodeConfig } from "../types";
4
4
  import { GraphNode } from "./node";
5
5
  /**
6
6
  * Manages event handling and routing for a graph
@@ -18,6 +18,7 @@ export declare class GraphEventManager<T extends ZodSchema> {
18
18
  private graphEvents?;
19
19
  private entryNode?;
20
20
  private globalErrorHandler?;
21
+ private lastEvents;
21
22
  /**
22
23
  * Creates a new GraphEventManager instance
23
24
  * @param eventEmitter - The event emitter implementation to use
@@ -88,6 +89,13 @@ export declare class GraphEventManager<T extends ZodSchema> {
88
89
  * @private
89
90
  */
90
91
  private executeNode;
92
+ /**
93
+ * Waits for correlated events to occur and validates them using a correlation function
94
+ */
91
95
  waitForCorrelatedEvents(eventTypes: string[], timeoutMs: number, correlationFn: (events: GraphEvent<T>[]) => boolean): Promise<GraphEvent<T>[]>;
96
+ /**
97
+ * Handles events based on the node's event handler configuration
98
+ */
99
+ handleNodeEvents(nodeName: string, config: EventConfig): Promise<any[]>;
92
100
  }
93
101
  //# sourceMappingURL=event-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-manager.d.ts","sourceRoot":"","sources":["../../graph/event-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,SAAS;IAqB9C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,YAAY,CAAC;IA3BvB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,WAAW,CAAqD;IACxE,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAmD;IAE9E;;;;;;;;;;OAUG;gBAEO,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,EAC7D,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,YAAA;IAUrC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAWhC;;;;;OAKG;IACI,SAAS,CAAC,CAAC,GAAG,GAAG,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,IAAI;IAaP;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAiD3B;;;OAGG;IACH,wBAAwB,IAAI,IAAI;IAuChC;;;;;;OAMG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC;IA2CjB;;;;OAIG;IACH,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAI9D;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;;;;OASG;YACW,WAAW;IAuCnB,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,GAClD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CA+C5B"}
1
+ {"version":3,"file":"event-manager.d.ts","sourceRoot":"","sources":["../../graph/event-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,SAAS;IAsB9C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,YAAY,CAAC;IA5BvB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,WAAW,CAAqD;IACxE,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAmD;IAC9E,OAAO,CAAC,UAAU,CAA0B;IAE5C;;;;;;;;;;OAUG;gBAEO,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,EAC7D,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,YAAA;IAUrC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAWhC;;;;;OAKG;IACI,SAAS,CAAC,CAAC,GAAG,GAAG,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,IAAI;IAWP;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAiD3B;;;OAGG;IACH,wBAAwB,IAAI,IAAI;IAuChC;;;;;;OAMG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC;IA2CjB;;;;OAIG;IACH,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAI9D;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKzC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;;;;OASG;YACW,WAAW;IA4BzB;;OAEG;IACH,uBAAuB,CACrB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,GAClD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAmD3B;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,GAAG,EAAE,CAAC;CAsFlB"}
@@ -34,6 +34,7 @@ class GraphEventManager {
34
34
  this.nodeExecutor = nodeExecutor;
35
35
  this.eventSubject = new rxjs_1.Subject();
36
36
  this.nodeStreams = new Map();
37
+ this.lastEvents = new Map();
37
38
  this.name = name;
38
39
  this.context = context;
39
40
  this.graphEvents = graphEvents;
@@ -59,13 +60,11 @@ class GraphEventManager {
59
60
  * @param context - Optional graph context
60
61
  */
61
62
  emitEvent(type, payload, context) {
62
- // Éviter la double imbrication des événements
63
63
  const event = {
64
64
  type,
65
65
  payload,
66
66
  timestamp: Date.now(),
67
67
  };
68
- // Émettre l'événement une seule fois
69
68
  this.eventSubject.next(event);
70
69
  this.eventEmitter.emit(type, payload);
71
70
  }
@@ -208,6 +207,7 @@ class GraphEventManager {
208
207
  * @param data - Optional data to include with the event
209
208
  */
210
209
  emit(eventName, data) {
210
+ this.lastEvents.set(eventName, data);
211
211
  this.eventEmitter.emit(eventName, data);
212
212
  }
213
213
  /**
@@ -237,57 +237,135 @@ class GraphEventManager {
237
237
  if (!node) {
238
238
  throw new Error(`Node "${nodeName}" not found`);
239
239
  }
240
- // Attendre les événements si waitForEvents est configuré
241
- if (node.waitForEvents) {
242
- try {
243
- yield this.waitForEvents(node.waitForEvents.events, node.waitForEvents.timeout);
244
- }
245
- catch (error) {
246
- throw new Error(`Timeout waiting for events in node "${nodeName}": ${error.message}`);
247
- }
240
+ // Remplacer le code existant de gestion d'événements
241
+ if (node.when) {
242
+ yield this.handleNodeEvents(nodeName, node.when);
248
243
  }
249
244
  return this.nodeExecutor.executeNode(nodeName, context, inputs, triggeredByEvent);
250
245
  });
251
246
  }
247
+ /**
248
+ * Waits for correlated events to occur and validates them using a correlation function
249
+ */
252
250
  waitForCorrelatedEvents(eventTypes, timeoutMs, correlationFn) {
253
- return __awaiter(this, void 0, void 0, function* () {
254
- return new Promise((resolve, reject) => {
255
- const receivedEvents = new Map();
256
- let isResolved = false;
257
- const timeoutId = setTimeout(() => {
251
+ return new Promise((resolve, reject) => {
252
+ const receivedEvents = new Map();
253
+ const eventHandlers = new Map();
254
+ let isResolved = false;
255
+ const cleanup = () => {
256
+ eventHandlers.forEach((handler, event) => {
257
+ this.eventEmitter.removeListener(event, handler);
258
+ });
259
+ };
260
+ eventTypes.forEach((eventType) => {
261
+ const handler = (eventData) => {
258
262
  if (!isResolved) {
259
- isResolved = true;
260
- eventTypes.forEach((type) => {
261
- this.eventEmitter.removeAllListeners(type);
262
- });
263
- reject(new Error(`Timeout waiting for correlated events: ${eventTypes.join(", ")}`));
264
- }
265
- }, timeoutMs);
266
- const checkCorrelation = () => {
267
- if (eventTypes.every((type) => receivedEvents.has(type))) {
268
- const events = Array.from(receivedEvents.values());
269
- if (correlationFn(events)) {
270
- if (!isResolved) {
263
+ const event = {
264
+ type: eventType,
265
+ payload: eventData,
266
+ timestamp: Date.now(),
267
+ };
268
+ receivedEvents.set(eventType, event);
269
+ if (eventTypes.every((type) => receivedEvents.has(type))) {
270
+ const events = Array.from(receivedEvents.values());
271
+ if (correlationFn(events)) {
271
272
  isResolved = true;
272
273
  clearTimeout(timeoutId);
273
- eventTypes.forEach((type) => {
274
- this.eventEmitter.removeAllListeners(type);
275
- });
274
+ cleanup();
276
275
  resolve(events);
277
276
  }
278
277
  }
279
278
  }
280
279
  };
281
- eventTypes.forEach((eventType) => {
282
- this.eventEmitter.on(eventType, (eventData) => {
283
- receivedEvents.set(eventType, {
284
- type: eventType,
285
- payload: eventData,
280
+ eventHandlers.set(eventType, handler);
281
+ this.eventEmitter.on(eventType, handler);
282
+ });
283
+ const timeoutId = setTimeout(() => {
284
+ if (!isResolved) {
285
+ cleanup();
286
+ reject(new Error(`Timeout waiting for correlated events: ${eventTypes.join(", ")}`));
287
+ }
288
+ }, timeoutMs);
289
+ });
290
+ }
291
+ /**
292
+ * Handles events based on the node's event handler configuration
293
+ */
294
+ handleNodeEvents(nodeName, config) {
295
+ return __awaiter(this, void 0, void 0, function* () {
296
+ const { events, timeout = 30000, strategy } = config;
297
+ return new Promise((resolve, reject) => {
298
+ const receivedEvents = new Map();
299
+ const eventHandlers = new Map();
300
+ let isResolved = false;
301
+ // Ajouter les événements déjà reçus
302
+ events.forEach((event) => {
303
+ const existingEvent = this.lastEvents.get(event);
304
+ if (existingEvent) {
305
+ receivedEvents.set(event, {
306
+ type: event,
307
+ payload: existingEvent,
286
308
  timestamp: Date.now(),
287
309
  });
288
- checkCorrelation();
289
- });
310
+ }
290
311
  });
312
+ // Vérifier si on a déjà tous les événements nécessaires
313
+ const checkEvents = () => {
314
+ var _a;
315
+ if (isResolved)
316
+ return;
317
+ const eventsList = Array.from(receivedEvents.values());
318
+ switch (strategy.type) {
319
+ case "single":
320
+ if (receivedEvents.size > 0) {
321
+ resolve(eventsList);
322
+ isResolved = true;
323
+ }
324
+ break;
325
+ case "all":
326
+ case "correlate":
327
+ const allReceived = events.every((e) => receivedEvents.has(e));
328
+ if (allReceived) {
329
+ if (strategy.type === "correlate") {
330
+ const correlated = (_a = strategy.correlation) === null || _a === void 0 ? void 0 : _a.call(strategy, eventsList);
331
+ if (!correlated)
332
+ return;
333
+ }
334
+ resolve(eventsList);
335
+ isResolved = true;
336
+ }
337
+ break;
338
+ }
339
+ if (isResolved) {
340
+ cleanup();
341
+ }
342
+ };
343
+ events.forEach((event) => {
344
+ if (!receivedEvents.has(event)) {
345
+ const handler = (eventData) => {
346
+ receivedEvents.set(event, {
347
+ type: event,
348
+ payload: eventData,
349
+ timestamp: Date.now(),
350
+ });
351
+ checkEvents();
352
+ };
353
+ eventHandlers.set(event, handler);
354
+ this.eventEmitter.on(event, handler);
355
+ }
356
+ });
357
+ const cleanup = () => {
358
+ eventHandlers.forEach((handler, event) => {
359
+ this.eventEmitter.removeListener(event, handler);
360
+ });
361
+ };
362
+ checkEvents();
363
+ const timeoutId = setTimeout(() => {
364
+ if (!isResolved) {
365
+ cleanup();
366
+ reject(new Error(`Timeout waiting for events: ${events.join(", ")}`));
367
+ }
368
+ }, timeout);
291
369
  });
292
370
  });
293
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-manager.js","sourceRoot":"","sources":["../../graph/event-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-manager.js","sourceRoot":"","sources":["../../graph/event-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from "zod";
2
- import { GraphObservable } from "../interfaces";
2
+ import { GraphObservable, NLPNodeConfig } from "../interfaces";
3
3
  import { GraphConfig, GraphContext, GraphNodeConfig } from "../types";
4
4
  import { NodeParams } from "./node";
5
5
  import { GraphObserver } from "./observer";
@@ -34,6 +34,7 @@ export declare class GraphFlow<T extends ZodSchema> {
34
34
  private logger;
35
35
  private eventManager;
36
36
  private nodeExecutor;
37
+ private nlpNodes;
37
38
  /**
38
39
  * Creates a new instance of GraphFlow
39
40
  * @param {string} name - The name of the graph flow
@@ -161,5 +162,23 @@ export declare class GraphFlow<T extends ZodSchema> {
161
162
  * @returns {GraphVisualizer<T>} A visualizer instance
162
163
  */
163
164
  createVisualizer(): GraphVisualizer<T>;
165
+ /**
166
+ * Gets the schema for the current graph
167
+ * @returns {T} The schema for the current graph
168
+ */
169
+ getSchema(): T;
170
+ /**
171
+ * Adds a new NLP node to the graph
172
+ * @param {NLPNodeConfig<T>} config - Configuration for the NLP node
173
+ * @returns {Promise<void>}
174
+ */
175
+ addNLPNode(config: NLPNodeConfig<T>): Promise<void>;
176
+ /**
177
+ * Processes natural language input using a specific NLP node
178
+ * @param {string} text - The input text to process
179
+ * @param {string} nodeName - The name of the NLP node to use
180
+ * @returns {Promise<GraphContext<T>>} The result of the NLP node execution
181
+ */
182
+ processNaturalLanguage(text: string, nodeName: string): Promise<GraphContext<T>>;
164
183
  }
165
184
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAiB,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,WAAW,EACX,YAAY,EAEZ,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAa,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS;IA0B/B,IAAI,EAAE,MAAM;IAzBrB,OAAO,CAAC,OAAO,CAAkB;IAC1B,SAAS,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,kBAAkB,CAAC,CAAmD;IAC9E,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAkB;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAAgC;IAE/C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAAe;IAEnC;;;;;OAKG;gBAEM,IAAI,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO;IA6CrC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;;;;;;OAQG;YACW,WAAW;IAczB,OAAO,CAAC,MAAM;IAIP,OAAO,IAAI,MAAM,EAAE;IAInB,SAAS,IAAI,IAAI;IAIxB;;OAEG;IACI,OAAO,CACZ,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QACjC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACtE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;KAC1B,GACL,eAAe,CAAC,CAAC,CAAC;IAIrB;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;;;;OAOG;IACU,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAmC3B;;;;;OAKG;IACU,IAAI,CACf,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;OAIG;IACI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAIrE;;;OAGG;IACI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAiD7C;;;OAGG;IACI,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC;IAIpC;;;;OAIG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI7C;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnD;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKzC;;;OAGG;IACI,QAAQ,IAAI,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAI5C;;OAEG;IACI,OAAO,IAAI,IAAI;IAOtB;;;OAGG;IACI,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC;CAG9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GraphFlow = void 0;
13
13
  const events_1 = require("events");
14
14
  const rxjs_1 = require("rxjs");
15
+ const nlp_1 = require("../modules/nlp");
15
16
  const event_manager_1 = require("./event-manager");
16
17
  const logger_1 = require("./logger");
17
18
  const node_1 = require("./node");
@@ -43,6 +44,7 @@ class GraphFlow {
43
44
  this.verbose = false;
44
45
  this.eventSubject = new rxjs_1.Subject();
45
46
  this.destroySubject = new rxjs_1.Subject();
47
+ this.nlpNodes = new Map();
46
48
  this.nodes = new Map(config.nodes.map((node) => [node.name, node]));
47
49
  this.validator = config.schema;
48
50
  this.context = config.schema.parse(config.context);
@@ -58,7 +60,7 @@ class GraphFlow {
58
60
  this.setupEventStreams();
59
61
  this.setupEventListeners();
60
62
  this.setupGraphEventListeners();
61
- this.observer = new observer_1.GraphObserver(this, this.eventSubject, this.stateSubject, this.destroySubject);
63
+ this.observer = new observer_1.GraphObserver(this, this.eventSubject, this.stateSubject, this.destroySubject, this.eventManager);
62
64
  }
63
65
  /**
64
66
  * Sets up event listeners for node-based events
@@ -116,6 +118,9 @@ class GraphFlow {
116
118
  */
117
119
  executeNode(nodeName_1, context_1, inputs_1) {
118
120
  return __awaiter(this, arguments, void 0, function* (nodeName, context, inputs, triggeredByEvent = false) {
121
+ const node = this.nodes.get(nodeName);
122
+ if (!node)
123
+ throw new Error(`Node "${nodeName}" not found`);
119
124
  return this.nodeExecutor.executeNode(nodeName, context, inputs, triggeredByEvent);
120
125
  });
121
126
  }
@@ -191,15 +196,14 @@ class GraphFlow {
191
196
  * @returns {Promise<void>}
192
197
  */
193
198
  emit(eventName, data) {
194
- return __awaiter(this, void 0, void 0, function* () {
195
- const event = {
196
- type: eventName,
197
- payload: data,
198
- timestamp: Date.now(),
199
- };
200
- this.eventSubject.next(event);
201
- yield new Promise((resolve) => setTimeout(resolve, 0));
202
- });
199
+ const event = {
200
+ type: eventName,
201
+ payload: data,
202
+ timestamp: Date.now(),
203
+ };
204
+ this.eventSubject.next(event);
205
+ this.eventManager.emit(eventName, data);
206
+ return Promise.resolve();
203
207
  }
204
208
  /**
205
209
  * Registers an event handler
@@ -306,6 +310,51 @@ class GraphFlow {
306
310
  createVisualizer() {
307
311
  return new visualizer_1.GraphVisualizer(this.nodes);
308
312
  }
313
+ /**
314
+ * Gets the schema for the current graph
315
+ * @returns {T} The schema for the current graph
316
+ */
317
+ getSchema() {
318
+ return this.validator;
319
+ }
320
+ /**
321
+ * Adds a new NLP node to the graph
322
+ * @param {NLPNodeConfig<T>} config - Configuration for the NLP node
323
+ * @returns {Promise<void>}
324
+ */
325
+ addNLPNode(config) {
326
+ return __awaiter(this, void 0, void 0, function* () {
327
+ const node = new nlp_1.NLPNode(config);
328
+ yield node.initialize();
329
+ this.nlpNodes.set(config.name, node);
330
+ this.addNode({
331
+ name: config.name,
332
+ execute: (context, input) => __awaiter(this, void 0, void 0, function* () {
333
+ if (!(input === null || input === void 0 ? void 0 : input.input))
334
+ return;
335
+ const result = yield node.process(input.input);
336
+ console.log("GraphFlow NLP result:", result);
337
+ Object.assign(context, { nlpResult: result });
338
+ }),
339
+ next: config.next,
340
+ });
341
+ });
342
+ }
343
+ /**
344
+ * Processes natural language input using a specific NLP node
345
+ * @param {string} text - The input text to process
346
+ * @param {string} nodeName - The name of the NLP node to use
347
+ * @returns {Promise<GraphContext<T>>} The result of the NLP node execution
348
+ */
349
+ processNaturalLanguage(text, nodeName) {
350
+ return __awaiter(this, void 0, void 0, function* () {
351
+ const node = this.nlpNodes.get(nodeName);
352
+ if (!node) {
353
+ throw new Error(`NLP node "${nodeName}" not found`);
354
+ }
355
+ return this.execute(nodeName, { input: text });
356
+ });
357
+ }
309
358
  }
310
359
  exports.GraphFlow = GraphFlow;
311
360
  //# sourceMappingURL=index.js.map