@ai.ntellect/core 0.7.8 → 1.0.0

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 (111) hide show
  1. package/README.md +158 -81
  2. package/index.ts +462 -22
  3. package/package copy.json +21 -0
  4. package/package.json +9 -44
  5. package/tsconfig.json +108 -22
  6. package/types.ts +62 -0
  7. package/utils/executor.ts +42 -0
  8. package/.mocharc.json +0 -5
  9. package/dist/graph/controller.d.ts +0 -31
  10. package/dist/graph/controller.d.ts.map +0 -1
  11. package/dist/graph/controller.js +0 -71
  12. package/dist/graph/controller.js.map +0 -1
  13. package/dist/graph/event-manager.d.ts +0 -93
  14. package/dist/graph/event-manager.d.ts.map +0 -1
  15. package/dist/graph/event-manager.js +0 -296
  16. package/dist/graph/event-manager.js.map +0 -1
  17. package/dist/graph/index.d.ts +0 -159
  18. package/dist/graph/index.d.ts.map +0 -1
  19. package/dist/graph/index.js +0 -303
  20. package/dist/graph/index.js.map +0 -1
  21. package/dist/graph/logger.d.ts +0 -46
  22. package/dist/graph/logger.d.ts.map +0 -1
  23. package/dist/graph/logger.js +0 -69
  24. package/dist/graph/logger.js.map +0 -1
  25. package/dist/graph/node.d.ts +0 -93
  26. package/dist/graph/node.d.ts.map +0 -1
  27. package/dist/graph/node.js +0 -259
  28. package/dist/graph/node.js.map +0 -1
  29. package/dist/graph/observer.d.ts +0 -115
  30. package/dist/graph/observer.d.ts.map +0 -1
  31. package/dist/graph/observer.js +0 -198
  32. package/dist/graph/observer.js.map +0 -1
  33. package/dist/index.d.ts +0 -26
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -42
  36. package/dist/index.js.map +0 -1
  37. package/dist/interfaces/index.d.ts +0 -447
  38. package/dist/interfaces/index.d.ts.map +0 -1
  39. package/dist/interfaces/index.js +0 -75
  40. package/dist/interfaces/index.js.map +0 -1
  41. package/dist/modules/agenda/adapters/node-cron/index.d.ts +0 -17
  42. package/dist/modules/agenda/adapters/node-cron/index.d.ts.map +0 -1
  43. package/dist/modules/agenda/adapters/node-cron/index.js +0 -30
  44. package/dist/modules/agenda/adapters/node-cron/index.js.map +0 -1
  45. package/dist/modules/agenda/index.d.ts +0 -63
  46. package/dist/modules/agenda/index.d.ts.map +0 -1
  47. package/dist/modules/agenda/index.js +0 -141
  48. package/dist/modules/agenda/index.js.map +0 -1
  49. package/dist/modules/embedding/adapters/ai/index.d.ts +0 -29
  50. package/dist/modules/embedding/adapters/ai/index.d.ts.map +0 -1
  51. package/dist/modules/embedding/adapters/ai/index.js +0 -58
  52. package/dist/modules/embedding/adapters/ai/index.js.map +0 -1
  53. package/dist/modules/embedding/index.d.ts +0 -36
  54. package/dist/modules/embedding/index.d.ts.map +0 -1
  55. package/dist/modules/embedding/index.js +0 -60
  56. package/dist/modules/embedding/index.js.map +0 -1
  57. package/dist/modules/memory/adapters/in-memory/index.d.ts +0 -120
  58. package/dist/modules/memory/adapters/in-memory/index.d.ts.map +0 -1
  59. package/dist/modules/memory/adapters/in-memory/index.js +0 -211
  60. package/dist/modules/memory/adapters/in-memory/index.js.map +0 -1
  61. package/dist/modules/memory/adapters/meilisearch/index.d.ts +0 -110
  62. package/dist/modules/memory/adapters/meilisearch/index.d.ts.map +0 -1
  63. package/dist/modules/memory/adapters/meilisearch/index.js +0 -321
  64. package/dist/modules/memory/adapters/meilisearch/index.js.map +0 -1
  65. package/dist/modules/memory/adapters/redis/index.d.ts +0 -82
  66. package/dist/modules/memory/adapters/redis/index.d.ts.map +0 -1
  67. package/dist/modules/memory/adapters/redis/index.js +0 -159
  68. package/dist/modules/memory/adapters/redis/index.js.map +0 -1
  69. package/dist/modules/memory/index.d.ts +0 -67
  70. package/dist/modules/memory/index.d.ts.map +0 -1
  71. package/dist/modules/memory/index.js +0 -104
  72. package/dist/modules/memory/index.js.map +0 -1
  73. package/dist/types/index.d.ts +0 -170
  74. package/dist/types/index.d.ts.map +0 -1
  75. package/dist/types/index.js +0 -3
  76. package/dist/types/index.js.map +0 -1
  77. package/dist/utils/generate-action-schema.d.ts +0 -5
  78. package/dist/utils/generate-action-schema.d.ts.map +0 -1
  79. package/dist/utils/generate-action-schema.js +0 -44
  80. package/dist/utils/generate-action-schema.js.map +0 -1
  81. package/dist/utils/header-builder.d.ts +0 -12
  82. package/dist/utils/header-builder.d.ts.map +0 -1
  83. package/dist/utils/header-builder.js +0 -35
  84. package/dist/utils/header-builder.js.map +0 -1
  85. package/graph/controller.ts +0 -74
  86. package/graph/event-manager.ts +0 -363
  87. package/graph/index.ts +0 -395
  88. package/graph/logger.ts +0 -70
  89. package/graph/node.ts +0 -327
  90. package/graph/observer.ts +0 -368
  91. package/interfaces/index.ts +0 -548
  92. package/modules/agenda/adapters/node-cron/index.ts +0 -25
  93. package/modules/agenda/index.ts +0 -146
  94. package/modules/embedding/adapters/ai/index.ts +0 -42
  95. package/modules/embedding/index.ts +0 -45
  96. package/modules/memory/adapters/in-memory/index.ts +0 -207
  97. package/modules/memory/adapters/meilisearch/index.ts +0 -361
  98. package/modules/memory/adapters/redis/index.ts +0 -164
  99. package/modules/memory/index.ts +0 -93
  100. package/test/graph/controller.test.ts +0 -187
  101. package/test/graph/event-manager.test.ts +0 -118
  102. package/test/graph/index.test.ts +0 -684
  103. package/test/graph/node.test.ts +0 -655
  104. package/test/graph/observer.test.ts +0 -398
  105. package/test/modules/agenda/node-cron.test.ts +0 -307
  106. package/test/modules/memory/adapters/in-memory.test.ts +0 -153
  107. package/test/modules/memory/adapters/meilisearch.test.ts +0 -287
  108. package/test/modules/memory/base.test.ts +0 -230
  109. package/types/index.ts +0 -190
  110. package/utils/generate-action-schema.ts +0 -46
  111. package/utils/header-builder.ts +0 -40
@@ -1,303 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GraphFlow = void 0;
13
- const events_1 = require("events");
14
- const rxjs_1 = require("rxjs");
15
- const event_manager_1 = require("./event-manager");
16
- const logger_1 = require("./logger");
17
- const node_1 = require("./node");
18
- const observer_1 = require("./observer");
19
- /**
20
- * @module GraphFlow
21
- * @description A flexible workflow engine that manages the execution of nodes in a graph-like structure.
22
- *
23
- * Key features:
24
- * - Multiple branches support
25
- * - Conditional branching (runs first matching condition, or all if none have conditions)
26
- * - Event-driven nodes
27
- * - Zod validation of context/inputs/outputs
28
- * - Automatic retry on node failures
29
- *
30
- * @template T - Extends ZodSchema for type validation
31
- */
32
- class GraphFlow {
33
- /**
34
- * Creates a new instance of GraphFlow
35
- * @param {string} name - The name of the graph flow
36
- * @param {GraphDefinition<T>} config - Configuration object containing nodes, schema, context, and error handlers
37
- * @param {Object} options - Optional options for the graph flow
38
- */
39
- constructor(name, config, options = {}) {
40
- var _a;
41
- this.name = name;
42
- this.verbose = false;
43
- this.eventSubject = new rxjs_1.Subject();
44
- this.destroySubject = new rxjs_1.Subject();
45
- this.nodes = new Map(config.nodes.map((node) => [node.name, node]));
46
- this.validator = config.schema;
47
- this.context = config.schema.parse(config.context);
48
- this.globalErrorHandler = config.onError;
49
- this.eventEmitter =
50
- config.eventEmitter || new events_1.EventEmitter();
51
- this.graphEvents = config.events;
52
- this.verbose = (_a = options.verbose) !== null && _a !== void 0 ? _a : false;
53
- this.stateSubject = new rxjs_1.BehaviorSubject(this.context);
54
- this.logger = new logger_1.GraphLogger(name, options.verbose);
55
- this.eventManager = new event_manager_1.GraphEventManager(this.eventEmitter, this.nodes, name, this.context, config.events, config.entryNode, config.onError);
56
- this.nodeExecutor = new node_1.GraphNode(this.nodes, this.logger, this.eventManager, this.eventSubject, this.stateSubject);
57
- this.setupEventStreams();
58
- this.setupEventListeners();
59
- this.setupGraphEventListeners();
60
- this.observer = new observer_1.GraphObserver(this, this.eventSubject, this.stateSubject, this.destroySubject);
61
- }
62
- /**
63
- * Sets up event listeners for node-based events
64
- * @private
65
- * @description Attaches all node-based event triggers while preserving external listeners
66
- */
67
- setupEventStreams() {
68
- this.eventManager.on("nodeStarted", (data) => {
69
- this.addLog(`Event: Node "${data.name}" started`);
70
- });
71
- this.eventManager.on("nodeCompleted", (data) => {
72
- this.addLog(`Event: Node "${data.name}" completed`);
73
- });
74
- this.eventManager.on("nodeError", (data) => {
75
- var _a, _b;
76
- let errorMessage = "Unknown error";
77
- if (data.error) {
78
- errorMessage =
79
- data.error instanceof Error
80
- ? data.error.message
81
- : ((_b = (_a = data.error.errors) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) ||
82
- data.error.message ||
83
- "Unknown error";
84
- }
85
- this.addLog(`Event: Node "${data.name}" error: ${errorMessage}`);
86
- });
87
- this.eventManager.on("nodeStateChanged", (data) => {
88
- this.addLog(`Event: Node "${data.name}" state changed`);
89
- });
90
- }
91
- /**
92
- * Sets up event listeners for node-based events
93
- * @private
94
- * @description Attaches all node-based event triggers while preserving external listeners
95
- */
96
- setupEventListeners() {
97
- this.eventManager.setupEventListeners();
98
- }
99
- /**
100
- * Sets up event listeners for graph-based events
101
- * @private
102
- * @description Attaches all graph-based event triggers
103
- */
104
- setupGraphEventListeners() {
105
- this.eventManager.setupGraphEventListeners();
106
- }
107
- /**
108
- * Executes a specific node in the graph
109
- * @private
110
- * @param {string} nodeName - Name of the node to execute
111
- * @param {GraphContext<T>} context - Current execution context
112
- * @param {any} inputs - Input parameters for the node
113
- * @param {boolean} triggeredByEvent - Whether the execution was triggered by an event
114
- * @returns {Promise<void>}
115
- */
116
- executeNode(nodeName_1, context_1, inputs_1) {
117
- return __awaiter(this, arguments, void 0, function* (nodeName, context, inputs, triggeredByEvent = false) {
118
- return this.nodeExecutor.executeNode(nodeName, context, inputs, triggeredByEvent);
119
- });
120
- }
121
- addLog(message) {
122
- this.logger.addLog(message);
123
- }
124
- getLogs() {
125
- return this.logger.getLogs();
126
- }
127
- clearLogs() {
128
- this.logger.clearLogs();
129
- }
130
- /**
131
- * Get the observer instance for monitoring graph state and events
132
- */
133
- observe(options = {}) {
134
- return this.observer.state(options);
135
- }
136
- /**
137
- * Enable or disable verbose logging
138
- * @param {boolean} enabled - Whether to enable verbose logging
139
- */
140
- setVerbose(enabled) {
141
- this.logger.setVerbose(enabled);
142
- }
143
- /**
144
- * Get current verbose setting
145
- * @returns {boolean} Current verbose setting
146
- */
147
- isVerbose() {
148
- return this.logger.isVerbose();
149
- }
150
- /**
151
- * Executes the graph flow starting from a specific node
152
- * @param {string} startNode - Name of the node to start execution from
153
- * @param {any} inputs - Optional input parameters for the start node
154
- * @param {Partial<GraphContext<T>>} context - Optional context to merge
155
- * @param {NodeParams} params - Optional node parameters
156
- * @returns {Promise<GraphContext<T>>} Final context after execution
157
- */
158
- execute(startNode, params, context) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- var _a;
161
- if (context) {
162
- Object.assign(this.context, context);
163
- }
164
- this.eventEmitter.emit("graphStarted", { name: this.name });
165
- try {
166
- const node = this.nodes.get(startNode);
167
- if (!node)
168
- throw new Error(`Node "${startNode}" not found`);
169
- if (node.params && !params) {
170
- throw new Error(`Params required for node "${startNode}"`);
171
- }
172
- yield this.nodeExecutor.executeNode(startNode, this.context, params, false);
173
- this.eventEmitter.emit("graphCompleted", {
174
- name: this.name,
175
- context: this.context,
176
- });
177
- return this.getContext();
178
- }
179
- catch (error) {
180
- this.eventEmitter.emit("graphError", { name: this.name, error });
181
- (_a = this.globalErrorHandler) === null || _a === void 0 ? void 0 : _a.call(this, error, this.context);
182
- throw error;
183
- }
184
- });
185
- }
186
- /**
187
- * Emits an event to trigger event-based nodes
188
- * @param {string} eventName - Name of the event to emit
189
- * @param {Partial<GraphContext<T>>} data - Optional data to merge with context
190
- * @returns {Promise<void>}
191
- */
192
- emit(eventName, data) {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- const event = {
195
- type: eventName,
196
- payload: data,
197
- timestamp: Date.now(),
198
- };
199
- this.eventSubject.next(event);
200
- yield new Promise((resolve) => setTimeout(resolve, 0));
201
- });
202
- }
203
- /**
204
- * Registers an event handler
205
- * @param {string} eventName - Name of the event to listen for
206
- * @param {Function} handler - Handler function to execute when event is emitted
207
- */
208
- on(eventName, handler) {
209
- this.eventManager.on(eventName, handler);
210
- }
211
- /**
212
- * Updates the graph definition with new configuration
213
- * @param {GraphDefinition<T>} definition - New graph definition
214
- */
215
- load(definition) {
216
- var _a;
217
- // Clear all existing nodes
218
- this.nodes.clear();
219
- // Wipe out old node-based event listeners
220
- // (We keep external test listeners like "nodeStarted" or "nodeCompleted".)
221
- if ((_a = definition.nodes) === null || _a === void 0 ? void 0 : _a.length) {
222
- const allEvents = new Set();
223
- definition.nodes.forEach((n) => { var _a; return (_a = n.events) === null || _a === void 0 ? void 0 : _a.forEach((evt) => allEvents.add(evt)); });
224
- for (const evt of allEvents) {
225
- this.eventEmitter.removeAllListeners(evt);
226
- }
227
- }
228
- // Add in new nodes
229
- definition.nodes.forEach((node) => this.nodes.set(node.name, node));
230
- // Parse the new context
231
- this.context = definition.schema.parse(definition.context);
232
- this.validator = definition.schema;
233
- // Store entry node
234
- this.entryNode = definition.entryNode;
235
- // Store graph events
236
- this.graphEvents = definition.events;
237
- // Re-setup only node-based event triggers
238
- for (const node of this.nodes.values()) {
239
- if (node.events && node.events.length > 0) {
240
- node.events.forEach((event) => {
241
- this.eventEmitter.on(event, (data) => __awaiter(this, void 0, void 0, function* () {
242
- const freshContext = structuredClone(this.context);
243
- if (data)
244
- Object.assign(freshContext, data);
245
- yield this.executeNode(node.name, freshContext, undefined, true);
246
- }));
247
- });
248
- }
249
- }
250
- // Re-setup graph event listeners
251
- this.setupGraphEventListeners();
252
- }
253
- /**
254
- * Gets a copy of the current context
255
- * @returns {GraphContext<T>} A deep copy of the current context
256
- */
257
- getContext() {
258
- return structuredClone(this.context);
259
- }
260
- /**
261
- * Logs a message with optional data
262
- * @param {string} message - Message to log
263
- * @param {any} data - Optional data to log
264
- */
265
- log(message, data) {
266
- this.logger.log(message, data);
267
- }
268
- /**
269
- * Adds a new node to the graph
270
- * @param {Node<T>} node - Node to add
271
- * @throws {Error} If node with same name already exists
272
- */
273
- addNode(node) {
274
- this.nodes.set(node.name, node);
275
- this.eventManager.setupEventListeners();
276
- }
277
- /**
278
- * Removes a node from the graph
279
- * @param {string} nodeName - Name of the node to remove
280
- */
281
- removeNode(nodeName) {
282
- this.nodes.delete(nodeName);
283
- this.eventManager.setupEventListeners();
284
- }
285
- /**
286
- * Returns all nodes in the graph
287
- * @returns {Node<T>[]} Array of all nodes
288
- */
289
- getNodes() {
290
- return Array.from(this.nodes.values());
291
- }
292
- /**
293
- * Cleanup resources
294
- */
295
- destroy() {
296
- this.destroySubject.next();
297
- this.destroySubject.complete();
298
- this.eventSubject.complete();
299
- this.stateSubject.complete();
300
- }
301
- }
302
- exports.GraphFlow = GraphFlow;
303
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Handles logging operations for a graph instance
3
- * Provides methods for adding, retrieving, and managing logs with optional verbose output
4
- */
5
- export declare class GraphLogger {
6
- private graphName;
7
- private logs;
8
- private verbose;
9
- /**
10
- * Creates a new GraphLogger instance
11
- * @param graphName - The name of the graph this logger is associated with
12
- * @param verbose - Whether to output logs to console in real-time
13
- */
14
- constructor(graphName: string, verbose?: boolean);
15
- /**
16
- * Adds a new log entry with timestamp
17
- * @param message - The message to log
18
- */
19
- addLog(message: string): void;
20
- /**
21
- * Returns a copy of all stored logs
22
- * @returns Array of log messages
23
- */
24
- getLogs(): string[];
25
- /**
26
- * Clears all stored logs
27
- */
28
- clearLogs(): void;
29
- /**
30
- * Sets the verbose mode
31
- * @param enabled - Whether to enable verbose mode
32
- */
33
- setVerbose(enabled: boolean): void;
34
- /**
35
- * Gets the current verbose mode status
36
- * @returns Current verbose mode state
37
- */
38
- isVerbose(): boolean;
39
- /**
40
- * Logs a message to console with graph name prefix
41
- * @param message - The message to log
42
- * @param data - Optional data to log
43
- */
44
- log(message: string, data?: any): void;
45
- }
46
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../graph/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IASV,OAAO,CAAC,SAAS;IAR7B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAkB;IAEjC;;;;OAIG;gBACiB,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAI/D;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASpC;;;OAGG;IACI,OAAO,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACI,SAAS,IAAI,IAAI;IAIxB;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAGvC"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphLogger = void 0;
4
- /**
5
- * Handles logging operations for a graph instance
6
- * Provides methods for adding, retrieving, and managing logs with optional verbose output
7
- */
8
- class GraphLogger {
9
- /**
10
- * Creates a new GraphLogger instance
11
- * @param graphName - The name of the graph this logger is associated with
12
- * @param verbose - Whether to output logs to console in real-time
13
- */
14
- constructor(graphName, verbose = false) {
15
- this.graphName = graphName;
16
- this.logs = [];
17
- this.verbose = false;
18
- this.verbose = verbose;
19
- }
20
- /**
21
- * Adds a new log entry with timestamp
22
- * @param message - The message to log
23
- */
24
- addLog(message) {
25
- const timestamp = new Date().toISOString();
26
- const logMessage = `[${timestamp}] ${message}`;
27
- this.logs.push(logMessage);
28
- if (this.verbose) {
29
- console.log(`${this.graphName} - ${message}`);
30
- }
31
- }
32
- /**
33
- * Returns a copy of all stored logs
34
- * @returns Array of log messages
35
- */
36
- getLogs() {
37
- return [...this.logs];
38
- }
39
- /**
40
- * Clears all stored logs
41
- */
42
- clearLogs() {
43
- this.logs = [];
44
- }
45
- /**
46
- * Sets the verbose mode
47
- * @param enabled - Whether to enable verbose mode
48
- */
49
- setVerbose(enabled) {
50
- this.verbose = enabled;
51
- }
52
- /**
53
- * Gets the current verbose mode status
54
- * @returns Current verbose mode state
55
- */
56
- isVerbose() {
57
- return this.verbose;
58
- }
59
- /**
60
- * Logs a message to console with graph name prefix
61
- * @param message - The message to log
62
- * @param data - Optional data to log
63
- */
64
- log(message, data) {
65
- console.log(`[Graph ${this.graphName}] ${message}`, data);
66
- }
67
- }
68
- exports.GraphLogger = GraphLogger;
69
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../graph/logger.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,WAAW;IAItB;;;;OAIG;IACH,YAAoB,SAAiB,EAAE,UAAmB,KAAK;QAA3C,cAAS,GAAT,SAAS,CAAQ;QAR7B,SAAI,GAAa,EAAE,CAAC;QACpB,YAAO,GAAY,KAAK,CAAC;QAQ/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,MAAM,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAe,EAAE,IAAU;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF;AAjED,kCAiEC"}
@@ -1,93 +0,0 @@
1
- import { BehaviorSubject, Subject } from "rxjs";
2
- import { ZodSchema } from "zod";
3
- import { GraphContext, GraphEvent, Node } from "../types";
4
- import { GraphEventManager } from "./event-manager";
5
- /**
6
- * Represents a node in the graph that can execute operations and manage state
7
- * @template T - The Zod schema type for validation
8
- */
9
- export interface NodeParams<T = any> {
10
- [key: string]: T;
11
- }
12
- export interface GraphLogger {
13
- addLog: (message: string, data?: any) => void;
14
- }
15
- export declare class GraphNode<T extends ZodSchema> {
16
- private nodes;
17
- private logger;
18
- private eventManager;
19
- private eventSubject;
20
- private stateSubject;
21
- private lastStateEvent;
22
- private eventEmitter;
23
- /**
24
- * Creates a new GraphNode instance
25
- * @param nodes - Map of all nodes in the graph
26
- * @param logger - Logger instance for tracking node operations
27
- * @param eventManager - Manager for handling graph events
28
- * @param eventSubject - Subject for emitting events
29
- * @param stateSubject - Subject for managing graph state
30
- */
31
- constructor(nodes: Map<string, Node<T, any>>, logger: GraphLogger, eventManager: GraphEventManager<T>, eventSubject: Subject<GraphEvent<T>>, stateSubject: BehaviorSubject<GraphContext<T>>);
32
- /**
33
- * Emits an event with the specified type and payload
34
- * @param type - The type of event to emit
35
- * @param payload - The data associated with the event
36
- * @private
37
- */
38
- private emitEvent;
39
- /**
40
- * Executes a node with the given name and context
41
- * @param nodeName - The name of the node to execute
42
- * @param context - The current graph context
43
- * @param params - Input data for the node
44
- * @param triggeredByEvent - Whether the execution was triggered by an event
45
- * @throws Error if the node is not found or execution fails
46
- */
47
- executeNode(nodeName: string, context: GraphContext<T>, params: any, triggeredByEvent?: boolean): Promise<void>;
48
- /**
49
- * Validates the params for a node using its schema
50
- * @param node - The node whose params need validation
51
- * @param params - The input data to validate
52
- * @param nodeName - The name of the node (for error messages)
53
- * @throws Error if validation fails
54
- * @private
55
- */
56
- private validateParams;
57
- /**
58
- * Handles event-related operations for a node
59
- * @param node - The node whose events need handling
60
- * @param nodeName - The name of the node
61
- * @param context - The current graph context
62
- * @private
63
- */
64
- private handleEvents;
65
- /**
66
- * Executes a node with retry logic
67
- * @param node - The node to execute
68
- * @param contextProxy - The proxied graph context
69
- * @param params - Input data for the node
70
- * @param nodeName - The name of the node
71
- * @param params - Parameters for the node
72
- * @throws Error if all retry attempts fail
73
- * @private
74
- */
75
- private executeWithRetry;
76
- /**
77
- * Handles correlated events for a node
78
- * @param node - The node with correlated events
79
- * @param nodeName - The name of the node
80
- * @throws Error if correlation fails or timeout occurs
81
- * @private
82
- */
83
- private handleCorrelatedEvents;
84
- /**
85
- * Handles waiting for events
86
- * @param node - The node waiting for events
87
- * @param nodeName - The name of the node
88
- * @throws Error if timeout occurs
89
- * @private
90
- */
91
- private handleWaitForEvents;
92
- }
93
- //# sourceMappingURL=node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/C;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS;IAatC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAhBtB,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAAgB;IAEpC;;;;;;;OAOG;gBAEO,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAClC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKxD;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA+BjB;;;;;;;OAOG;IACU,WAAW,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,GAAG,EACX,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,IAAI,CAAC;IAsEhB;;;;;;;OAOG;YACW,cAAc;IAoB5B;;;;;;OAMG;YACW,YAAY;IAc1B;;;;;;;;;OASG;YACW,gBAAgB;IAyC9B;;;;;;OAMG;YACW,sBAAsB;IAuCpC;;;;;;OAMG;YACW,mBAAmB;CAalC"}