@ai.ntellect/core 0.7.7 → 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 -92
  14. package/dist/graph/event-manager.d.ts.map +0 -1
  15. package/dist/graph/event-manager.js +0 -244
  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 -92
  26. package/dist/graph/node.d.ts.map +0 -1
  27. package/dist/graph/node.js +0 -249
  28. package/dist/graph/node.js.map +0 -1
  29. package/dist/graph/observer.d.ts +0 -113
  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 -166
  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 -295
  87. package/graph/index.ts +0 -397
  88. package/graph/logger.ts +0 -70
  89. package/graph/node.ts +0 -305
  90. package/graph/observer.ts +0 -368
  91. package/interfaces/index.ts +0 -545
  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 -72
  102. package/test/graph/index.test.ts +0 -768
  103. package/test/graph/node.test.ts +0 -510
  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 -184
  110. package/utils/generate-action-schema.ts +0 -46
  111. package/utils/header-builder.ts +0 -40
@@ -1,249 +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.GraphNode = void 0;
13
- class GraphNode {
14
- /**
15
- * Creates a new GraphNode instance
16
- * @param nodes - Map of all nodes in the graph
17
- * @param logger - Logger instance for tracking node operations
18
- * @param eventManager - Manager for handling graph events
19
- * @param eventSubject - Subject for emitting events
20
- * @param stateSubject - Subject for managing graph state
21
- */
22
- constructor(nodes, logger, eventManager, eventSubject, stateSubject) {
23
- this.nodes = nodes;
24
- this.logger = logger;
25
- this.eventManager = eventManager;
26
- this.eventSubject = eventSubject;
27
- this.stateSubject = stateSubject;
28
- this.lastStateEvent = null;
29
- }
30
- /**
31
- * Emits an event with the specified type and payload
32
- * @param type - The type of event to emit
33
- * @param payload - The data associated with the event
34
- * @private
35
- */
36
- emitEvent(type, payload) {
37
- var _a;
38
- if (type === "nodeStateChanged") {
39
- if (((_a = this.lastStateEvent) === null || _a === void 0 ? void 0 : _a.type) === type &&
40
- this.lastStateEvent.payload.property === payload.property &&
41
- this.lastStateEvent.payload.newValue === payload.newValue &&
42
- this.lastStateEvent.payload.nodeName === payload.nodeName) {
43
- return;
44
- }
45
- }
46
- const event = {
47
- type,
48
- payload: Object.assign(Object.assign({}, payload), { name: type === "nodeStateChanged" ? payload.nodeName : payload.name, context: Object.assign({}, payload.context) }),
49
- timestamp: Date.now(),
50
- };
51
- this.eventSubject.next(event);
52
- this.eventManager.emitEvent(type, event);
53
- if (type === "nodeStateChanged") {
54
- this.lastStateEvent = event;
55
- this.stateSubject.next(Object.assign({}, payload.context));
56
- }
57
- }
58
- /**
59
- * Executes a node with the given name and context
60
- * @param nodeName - The name of the node to execute
61
- * @param context - The current graph context
62
- * @param params - Input data for the node
63
- * @param triggeredByEvent - Whether the execution was triggered by an event
64
- * @throws Error if the node is not found or execution fails
65
- */
66
- executeNode(nodeName_1, context_1, params_1) {
67
- return __awaiter(this, arguments, void 0, function* (nodeName, context, params, triggeredByEvent = false) {
68
- const node = this.nodes.get(nodeName);
69
- if (!node)
70
- throw new Error(`Node "${nodeName}" not found.`);
71
- // Créer une copie du contexte pour ce nœud
72
- const nodeContext = Object.assign({}, context);
73
- this.emitEvent("nodeStarted", { name: nodeName, context: nodeContext });
74
- try {
75
- const contextProxy = new Proxy(nodeContext, {
76
- set: (target, prop, value) => {
77
- const oldValue = target[prop];
78
- if (oldValue === value)
79
- return true;
80
- target[prop] = value;
81
- // Mettre à jour le contexte global
82
- context[prop] = value;
83
- this.emitEvent("nodeStateChanged", {
84
- nodeName,
85
- property: prop.toString(),
86
- oldValue,
87
- newValue: value,
88
- context: Object.assign({}, target),
89
- });
90
- return true;
91
- },
92
- });
93
- if (node.condition && !node.condition(contextProxy, params)) {
94
- return;
95
- }
96
- yield this.executeWithRetry(node, contextProxy, nodeName, params);
97
- this.emitEvent("nodeCompleted", { name: nodeName, context: nodeContext });
98
- if (!triggeredByEvent && node.next) {
99
- const nextNodes = typeof node.next === "function" ? node.next(contextProxy) : node.next;
100
- for (const nextNodeName of nextNodes) {
101
- yield this.executeNode(nextNodeName, context, undefined, false);
102
- }
103
- }
104
- }
105
- catch (error) {
106
- this.emitEvent("nodeError", {
107
- name: nodeName,
108
- error,
109
- context: nodeContext,
110
- });
111
- throw error;
112
- }
113
- });
114
- }
115
- /**
116
- * Validates the params for a node using its schema
117
- * @param node - The node whose params need validation
118
- * @param params - The input data to validate
119
- * @param nodeName - The name of the node (for error messages)
120
- * @throws Error if validation fails
121
- * @private
122
- */
123
- validateParams(node, params, nodeName) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- var _a, _b;
126
- // Si pas de schéma de validation ou si le schéma est optionnel, accepter n'importe quels params
127
- if (!node.params || ((_b = (_a = node.params).isOptional) === null || _b === void 0 ? void 0 : _b.call(_a)))
128
- return;
129
- // Vérifier les params uniquement si un schéma est défini et non optionnel
130
- if (!params) {
131
- throw new Error(`Params required for node "${nodeName}"`);
132
- }
133
- try {
134
- return node.params.parse(params);
135
- }
136
- catch (error) {
137
- throw error;
138
- }
139
- });
140
- }
141
- /**
142
- * Handles event-related operations for a node
143
- * @param node - The node whose events need handling
144
- * @param nodeName - The name of the node
145
- * @param context - The current graph context
146
- * @private
147
- */
148
- handleEvents(node, nodeName, context) {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- if (node.correlateEvents) {
151
- yield this.handleCorrelatedEvents(node, nodeName);
152
- }
153
- if (node.waitForEvents) {
154
- yield this.handleWaitForEvents(node, nodeName);
155
- }
156
- });
157
- }
158
- /**
159
- * Executes a node with retry logic
160
- * @param node - The node to execute
161
- * @param contextProxy - The proxied graph context
162
- * @param params - Input data for the node
163
- * @param nodeName - The name of the node
164
- * @param params - Parameters for the node
165
- * @throws Error if all retry attempts fail
166
- * @private
167
- */
168
- executeWithRetry(node, contextProxy, nodeName, params) {
169
- return __awaiter(this, void 0, void 0, function* () {
170
- var _a, _b, _c;
171
- let attempts = 0;
172
- let lastError = new Error("Unknown error");
173
- while (attempts < (((_a = node.retry) === null || _a === void 0 ? void 0 : _a.maxAttempts) || 1)) {
174
- try {
175
- // Valider les params uniquement si un schéma est défini
176
- if (node.params) {
177
- yield this.validateParams(node, params, nodeName);
178
- }
179
- yield node.execute(contextProxy, params);
180
- return;
181
- }
182
- catch (error) {
183
- lastError =
184
- error instanceof Error
185
- ? error
186
- : new Error((error === null || error === void 0 ? void 0 : error.message) || "Unknown error");
187
- attempts++;
188
- if (attempts === (((_b = node.retry) === null || _b === void 0 ? void 0 : _b.maxAttempts) || 1)) {
189
- if ((_c = node.retry) === null || _c === void 0 ? void 0 : _c.onRetryFailed) {
190
- yield node.retry.onRetryFailed(lastError, contextProxy);
191
- if (node.retry.continueOnFailed)
192
- return;
193
- }
194
- throw lastError;
195
- }
196
- yield new Promise((resolve) => { var _a; return setTimeout(resolve, ((_a = node.retry) === null || _a === void 0 ? void 0 : _a.delay) || 0); });
197
- }
198
- }
199
- });
200
- }
201
- /**
202
- * Handles correlated events for a node
203
- * @param node - The node with correlated events
204
- * @param nodeName - The name of the node
205
- * @throws Error if correlation fails or timeout occurs
206
- * @private
207
- */
208
- handleCorrelatedEvents(node, nodeName) {
209
- return __awaiter(this, void 0, void 0, function* () {
210
- if (node.correlateEvents) {
211
- const { events, timeout, correlation } = node.correlateEvents;
212
- this.logger.addLog(`⏳ Node "${nodeName}" waiting for correlated events: ${events.join(", ")}`);
213
- try {
214
- // Attendre les événements
215
- const receivedEvents = yield this.eventManager.waitForEvents(events, timeout);
216
- // Vérifier la corrélation
217
- if (!correlation(receivedEvents)) {
218
- this.logger.addLog(`❌ Event correlation failed for node "${nodeName}"`);
219
- throw new Error(`Event correlation failed for node "${nodeName}"`);
220
- }
221
- this.logger.addLog(`✅ Event correlation succeeded for node "${nodeName}"`);
222
- }
223
- catch (error) {
224
- this.logger.addLog(`❌ Error waiting for events: ${error.message}`);
225
- throw error;
226
- }
227
- }
228
- });
229
- }
230
- /**
231
- * Handles waiting for events
232
- * @param node - The node waiting for events
233
- * @param nodeName - The name of the node
234
- * @throws Error if timeout occurs
235
- * @private
236
- */
237
- handleWaitForEvents(node, nodeName) {
238
- return __awaiter(this, void 0, void 0, function* () {
239
- if (node.waitForEvents) {
240
- const { events, timeout } = node.waitForEvents;
241
- this.logger.addLog(`⏳ Node "${nodeName}" waiting for events: ${events.join(", ")}`);
242
- yield this.eventManager.waitForEvents(events, timeout);
243
- this.logger.addLog(`✅ All events received for node "${nodeName}"`);
244
- }
245
- });
246
- }
247
- }
248
- exports.GraphNode = GraphNode;
249
- //# sourceMappingURL=node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- import { BehaviorSubject, Observable, Subject } from "rxjs";
2
- import { ZodSchema } from "zod";
3
- import { GraphObservable } from "../interfaces";
4
- import { GraphContext, GraphEvent } from "../types";
5
- import { GraphFlow } from "./index";
6
- /**
7
- * GraphObserver class provides reactive observation capabilities for a GraphFlow instance
8
- * It allows monitoring state changes, node updates, and specific events in the graph
9
- * @template T - The Zod schema type that defines the structure of the graph data
10
- */
11
- export declare class GraphObserver<T extends ZodSchema> {
12
- private graph;
13
- private eventSubject;
14
- private stateSubject;
15
- private destroySubject;
16
- constructor(graph: GraphFlow<T>, eventSubject: Subject<GraphEvent<T>>, stateSubject: BehaviorSubject<GraphContext<T>>, destroySubject: Subject<void>);
17
- /**
18
- * Observes the entire graph state changes
19
- * @param options Configuration options for the observation
20
- * @param options.debounce Debounce time in milliseconds
21
- * @param options.delay Delay between emissions in milliseconds
22
- * @param options.stream If true, streams the specified properties letter by letter
23
- * @param options.properties List of properties to stream
24
- * @param options.onStreamLetter Callback for each letter emitted during streaming
25
- * @param options.onStreamComplete Callback when streaming is complete
26
- * @returns An Observable that emits the complete graph context whenever it changes
27
- */
28
- state(options?: {
29
- debounce?: number;
30
- delay?: number;
31
- stream?: boolean;
32
- properties?: (keyof GraphContext<T>)[];
33
- onStreamLetter?: (data: {
34
- letter: string;
35
- property: string;
36
- }) => void;
37
- onStreamComplete?: () => void;
38
- }): GraphObservable<T>;
39
- /**
40
- * Observes state changes for a specific node
41
- * @param name - The name of the node to observe
42
- * @returns An Observable that emits the graph context when the specified node changes
43
- */
44
- node(name: string): Observable<GraphContext<T>>;
45
- /**
46
- * Observes state changes for multiple nodes
47
- * @param names - Array of node names to observe
48
- * @returns An Observable that emits the graph context when any of the specified nodes change
49
- */
50
- nodes(names: string[]): Observable<GraphContext<T>>;
51
- /**
52
- * Observes specific properties of the graph context
53
- * @param keys - Single or multiple property keys to observe
54
- * @returns An Observable that emits an object containing only the specified properties
55
- * @template K - The key of the property to observe from GraphContext<T>
56
- */
57
- property<K extends keyof GraphContext<T>>(keys: K | K[]): Observable<{
58
- [P in K]: GraphContext<T>[P];
59
- } & {
60
- name: string;
61
- }>;
62
- /**
63
- * Observes specific events in the graph
64
- * @param type - The type of event to observe
65
- * @returns An Observable that emits events of the specified type
66
- */
67
- event(type: string): Observable<GraphEvent<T>>;
68
- /**
69
- * Waits for a specific condition to be met on an observable
70
- * @param observable - The Observable to watch
71
- * @param predicate - A function that returns true when the desired condition is met
72
- * @returns A Promise that resolves with the value when the predicate returns true
73
- * @template R - The type of value emitted by the observable
74
- */
75
- until<R>(observable: Observable<R>, predicate: (value: R) => boolean): Promise<R>;
76
- /**
77
- * Waits for correlated events to occur and validates them using a correlation function
78
- * @param eventTypes - Array of event types to wait for
79
- * @param timeoutMs - Timeout duration in milliseconds
80
- * @param correlationFn - Function to validate the correlation between events
81
- * @returns Promise that resolves when all correlated events are received
82
- */
83
- waitForCorrelatedEvents(eventTypes: string[], timeoutMs: number, correlationFn: (events: GraphEvent<T>[]) => boolean): Promise<GraphEvent<T>[]>;
84
- /**
85
- * Observes the current state of the graph
86
- * @returns Observable that emits the current graph context
87
- */
88
- observeState(): Observable<GraphContext<T>>;
89
- /**
90
- * Observes specific event types in the graph
91
- * @param eventType - The type of event to observe
92
- * @returns Observable that emits events of the specified type
93
- */
94
- observeEvents(eventType: string): Observable<GraphEvent<T>>;
95
- /**
96
- * Observes state changes for a specific node
97
- * @param nodeName - The name of the node to observe
98
- * @returns Observable that emits the graph context when the specified node changes
99
- */
100
- observeNodeState(nodeName: string): Observable<GraphContext<T>>;
101
- /**
102
- * Streams a message letter by letter with a specified delay
103
- * @param message - The message to stream
104
- * @param delayMs - The delay in milliseconds between each letter
105
- * @param property - The property name being streamed
106
- * @returns An Observable that emits each letter of the message along with its property
107
- */
108
- streamMessage(message: string, delayMs: number, property: string): Observable<{
109
- letter: string;
110
- property: string;
111
- }>;
112
- }
113
- //# sourceMappingURL=observer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../graph/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,OAAO,EAGR,MAAM,MAAM,CAAC;AAYd,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS;IAE1C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;gBAHd,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC;IAGvC;;;;;;;;;;OAUG;IACH,KAAK,CACH,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,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,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;IAsFrB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAe/C;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAgBnD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GACZ,UAAU,CAAC;SAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAoClE;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAS9C;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,EACL,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAC/B,OAAO,CAAC,CAAC,CAAC;IAab;;;;;;OAMG;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;IA0B3B;;;OAGG;IACH,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAO3D;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAW/D;;;;;;OAMG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAcpD"}
@@ -1,198 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphObserver = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const operators_1 = require("rxjs/operators");
6
- /**
7
- * GraphObserver class provides reactive observation capabilities for a GraphFlow instance
8
- * It allows monitoring state changes, node updates, and specific events in the graph
9
- * @template T - The Zod schema type that defines the structure of the graph data
10
- */
11
- class GraphObserver {
12
- constructor(graph, eventSubject, stateSubject, destroySubject) {
13
- this.graph = graph;
14
- this.eventSubject = eventSubject;
15
- this.stateSubject = stateSubject;
16
- this.destroySubject = destroySubject;
17
- }
18
- /**
19
- * Observes the entire graph state changes
20
- * @param options Configuration options for the observation
21
- * @param options.debounce Debounce time in milliseconds
22
- * @param options.delay Delay between emissions in milliseconds
23
- * @param options.stream If true, streams the specified properties letter by letter
24
- * @param options.properties List of properties to stream
25
- * @param options.onStreamLetter Callback for each letter emitted during streaming
26
- * @param options.onStreamComplete Callback when streaming is complete
27
- * @returns An Observable that emits the complete graph context whenever it changes
28
- */
29
- state(options = {}) {
30
- const baseObservable = new rxjs_1.Observable((subscriber) => {
31
- const subscription = (0, rxjs_1.combineLatest)([
32
- this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === "nodeStateChanged"), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.debounceTime)(options.debounce || 100)),
33
- this.stateSubject,
34
- ])
35
- .pipe((0, operators_1.map)(([eventContext, stateContext]) => (Object.assign(Object.assign({}, stateContext), eventContext))), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)))
36
- .subscribe(subscriber);
37
- // Stream the specified properties if specified
38
- if (options.stream && options.properties) {
39
- const context = this.stateSubject.getValue();
40
- options.properties.forEach((property) => {
41
- const message = context[property];
42
- if (message) {
43
- this.streamMessage(message.toString(), 500, property).subscribe({
44
- next: (data) => { var _a; return (_a = options.onStreamLetter) === null || _a === void 0 ? void 0 : _a.call(options, data); },
45
- complete: () => { var _a; return (_a = options.onStreamComplete) === null || _a === void 0 ? void 0 : _a.call(options); },
46
- });
47
- }
48
- });
49
- }
50
- return () => subscription.unsubscribe();
51
- });
52
- // Extend the observable with our custom methods
53
- return Object.assign(baseObservable, {
54
- state: () => this.stateSubject.asObservable(),
55
- node: (nodeName) => this.stateSubject.pipe((0, operators_1.map)((state) => (Object.assign(Object.assign({}, state), { nodeName })))),
56
- nodes: (nodeNames) => this.eventSubject.pipe((0, operators_1.filter)((event) => {
57
- var _a, _b;
58
- return event.type === "nodeStateChanged" &&
59
- nodeNames.includes((_b = (_a = event.payload) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "");
60
- }), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.share)()),
61
- property: (props) => this.stateSubject.pipe((0, operators_1.map)((state) => {
62
- const properties = Array.isArray(props) ? props : [props];
63
- return properties.reduce((acc, prop) => (Object.assign(Object.assign({}, acc), { [prop]: state[prop] })), {});
64
- })),
65
- event: (eventName) => this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === eventName)),
66
- until: (observable, predicate) => (0, rxjs_1.firstValueFrom)(observable.pipe((0, operators_1.filter)(predicate), (0, operators_1.take)(1))),
67
- });
68
- }
69
- /**
70
- * Observes state changes for a specific node
71
- * @param name - The name of the node to observe
72
- * @returns An Observable that emits the graph context when the specified node changes
73
- */
74
- node(name) {
75
- return this.eventSubject.pipe((0, operators_1.filter)((event) => { var _a; return event.type === "nodeStateChanged" && ((_a = event.payload) === null || _a === void 0 ? void 0 : _a.name) === name; }), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.share)());
76
- }
77
- /**
78
- * Observes state changes for multiple nodes
79
- * @param names - Array of node names to observe
80
- * @returns An Observable that emits the graph context when any of the specified nodes change
81
- */
82
- nodes(names) {
83
- return this.eventSubject.pipe((0, operators_1.filter)((event) => {
84
- var _a, _b;
85
- return names.includes((_b = (_a = event.payload) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "") &&
86
- event.type === "nodeStateChanged";
87
- }), (0, operators_1.map)(() => this.graph.getContext()), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.share)());
88
- }
89
- /**
90
- * Observes specific properties of the graph context
91
- * @param keys - Single or multiple property keys to observe
92
- * @returns An Observable that emits an object containing only the specified properties
93
- * @template K - The key of the property to observe from GraphContext<T>
94
- */
95
- property(keys) {
96
- const properties = Array.isArray(keys) ? keys : [keys];
97
- return this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === "nodeStateChanged" &&
98
- properties.some((key) => { var _a; return ((_a = event.payload) === null || _a === void 0 ? void 0 : _a.property) === key; })), (0, operators_1.map)((event) => (Object.assign(Object.assign({}, properties.reduce((obj, key) => (Object.assign(Object.assign({}, obj), { [key]: event.payload.context[key] })), {})), { name: event.payload.name }))), (0, operators_1.startWith)(Object.assign(Object.assign({}, properties.reduce((obj, key) => (Object.assign(Object.assign({}, obj), { [key]: this.stateSubject.value[key] })), {})), { name: "initial" })), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.share)());
99
- }
100
- /**
101
- * Observes specific events in the graph
102
- * @param type - The type of event to observe
103
- * @returns An Observable that emits events of the specified type
104
- */
105
- event(type) {
106
- return this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === type), (0, operators_1.map)((event) => event), (0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.share)());
107
- }
108
- /**
109
- * Waits for a specific condition to be met on an observable
110
- * @param observable - The Observable to watch
111
- * @param predicate - A function that returns true when the desired condition is met
112
- * @returns A Promise that resolves with the value when the predicate returns true
113
- * @template R - The type of value emitted by the observable
114
- */
115
- until(observable, predicate) {
116
- return new Promise((resolve) => {
117
- const subscription = observable.subscribe({
118
- next: (value) => {
119
- if (predicate(value)) {
120
- subscription.unsubscribe();
121
- resolve(value);
122
- }
123
- },
124
- });
125
- });
126
- }
127
- /**
128
- * Waits for correlated events to occur and validates them using a correlation function
129
- * @param eventTypes - Array of event types to wait for
130
- * @param timeoutMs - Timeout duration in milliseconds
131
- * @param correlationFn - Function to validate the correlation between events
132
- * @returns Promise that resolves when all correlated events are received
133
- */
134
- waitForCorrelatedEvents(eventTypes, timeoutMs, correlationFn) {
135
- return new Promise((resolve, reject) => {
136
- const eventObservables = eventTypes.map((eventType) => this.eventSubject.pipe((0, operators_1.filter)((event) => {
137
- return event.type === eventType && "timestamp" in event;
138
- }), (0, operators_1.take)(1)));
139
- (0, rxjs_1.combineLatest)(eventObservables)
140
- .pipe((0, operators_1.timeout)(timeoutMs), (0, operators_1.take)(1))
141
- .subscribe({
142
- next: (events) => {
143
- if (correlationFn(events)) {
144
- resolve(events);
145
- }
146
- else {
147
- reject(new Error(`Correlation validation failed`));
148
- }
149
- },
150
- error: (error) => reject(error),
151
- });
152
- });
153
- }
154
- /**
155
- * Observes the current state of the graph
156
- * @returns Observable that emits the current graph context
157
- */
158
- observeState() {
159
- return this.stateSubject.asObservable().pipe((0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)));
160
- }
161
- /**
162
- * Observes specific event types in the graph
163
- * @param eventType - The type of event to observe
164
- * @returns Observable that emits events of the specified type
165
- */
166
- observeEvents(eventType) {
167
- return this.eventSubject.asObservable().pipe((0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.filter)((event) => event.type === eventType));
168
- }
169
- /**
170
- * Observes state changes for a specific node
171
- * @param nodeName - The name of the node to observe
172
- * @returns Observable that emits the graph context when the specified node changes
173
- */
174
- observeNodeState(nodeName) {
175
- return this.eventSubject.asObservable().pipe((0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.filter)((event) => { var _a; return event.type === "nodeStateChanged" && ((_a = event.payload) === null || _a === void 0 ? void 0 : _a.name) === nodeName; }), (0, operators_1.map)(() => this.stateSubject.value));
176
- }
177
- /**
178
- * Streams a message letter by letter with a specified delay
179
- * @param message - The message to stream
180
- * @param delayMs - The delay in milliseconds between each letter
181
- * @param property - The property name being streamed
182
- * @returns An Observable that emits each letter of the message along with its property
183
- */
184
- streamMessage(message, delayMs, property) {
185
- return new rxjs_1.Observable((subscriber) => {
186
- for (let i = 0; i < message.length; i++) {
187
- setTimeout(() => {
188
- subscriber.next({ letter: message[i], property });
189
- if (i === message.length - 1) {
190
- subscriber.complete();
191
- }
192
- }, i * delayMs);
193
- }
194
- });
195
- }
196
- }
197
- exports.GraphObserver = GraphObserver;
198
- //# sourceMappingURL=observer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer.js","sourceRoot":"","sources":["../../graph/observer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,26 +0,0 @@
1
- /**
2
- * @module @ai.ntellect/core
3
- * @description Core module with workflow functionality, providing graph management,
4
- * memory storage, agenda scheduling, and embedding capabilities.
5
- *
6
- * This module exports various components:
7
- * - Graph management and controller
8
- * - Memory storage adapters (Meilisearch, Redis)
9
- * - Agenda scheduling with node-cron adapter
10
- * - Embedding functionality with AI adapter
11
- * - Utility functions for action schema generation and header building
12
- */
13
- export * from "./graph/controller";
14
- export * from "./graph/index";
15
- export * from "./modules/memory";
16
- export * from "./modules/memory/adapters/meilisearch";
17
- export * from "./modules/memory/adapters/redis";
18
- export * from "./interfaces";
19
- export * from "./modules/agenda";
20
- export * from "./modules/agenda/adapters/node-cron";
21
- export * from "./modules/embedding";
22
- export * from "./modules/embedding/adapters/ai";
23
- export * from "./types";
24
- export * from "./utils/generate-action-schema";
25
- export * from "./utils/header-builder";
26
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAEhD,cAAc,SAAS,CAAC;AAExB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC"}