@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
package/types/index.ts DELETED
@@ -1,190 +0,0 @@
1
- import { EventEmitter } from "events";
2
- import { ZodSchema } from "zod";
3
- import { IEventEmitter } from "../interfaces";
4
-
5
- /* ======================== MEMORY ======================== */
6
-
7
- /**
8
- * Represents the input structure for creating a memory entry.
9
- * @typedef {Object} CreateMemoryInput
10
- * @property {string} query - The query associated with the memory.
11
- * @property {any} data - The data to be stored.
12
- * @property {string} roomId - The room identifier.
13
- * @property {number} [ttl] - Time-to-live in seconds (optional).
14
- */
15
- export interface CreateMemoryInput {
16
- id?: string;
17
- data: string;
18
- embedding?: number[];
19
- roomId: string;
20
- ttl?: number;
21
- }
22
-
23
- /**
24
- * Represents a stored memory entry.
25
- * @typedef {Object} BaseMemoryType
26
- * @property {string} id - Unique identifier of the memory entry.
27
- * @property {string} data - Stored data as a string.
28
- * @property {string} query - The associated query.
29
- * @property {number[] | null} embedding - Vector representation of the data.
30
- * @property {string} roomId - The associated room ID.
31
- * @property {Date} createdAt - Creation date.
32
- */
33
- export interface BaseMemoryType {
34
- id: string;
35
- data: string;
36
- embedding?: number[];
37
- roomId: string;
38
- createdAt: Date;
39
- }
40
-
41
- /* ======================== SCHEDULING ======================== */
42
-
43
- /**
44
- * Type for scheduled request entries
45
- * @typedef {Object} ScheduledRequest
46
- */
47
- export type ScheduledRequest = {
48
- /** Unique identifier for the scheduled request */
49
- id: string;
50
- /** The original request string */
51
- originalRequest: string;
52
- /** The cron expression for scheduling */
53
- cronExpression: string;
54
- /** Whether the request is recurring */
55
- isRecurring: boolean;
56
- /** The creation date */
57
- createdAt: Date;
58
- };
59
-
60
- /* ======================== GRAPH ======================== */
61
-
62
- /**
63
- * Utility type for extracting schema type from Zod schema
64
- * @template T - Zod schema type
65
- */
66
- export type SchemaType<T> = T extends ZodSchema<infer U> ? U : never;
67
-
68
- /**
69
- * Type for graph context based on schema
70
- * @template T - Schema type
71
- */
72
- export type GraphContext<T extends ZodSchema> = {
73
- [key: string]: any;
74
- };
75
-
76
- /**
77
- * Interface representing a node in the graph
78
- * @interface
79
- * @template T - Schema type
80
- * @template I - Input schema type
81
- * @template O - Output schema type
82
- */
83
- export interface Node<T extends ZodSchema, P = any> {
84
- /** Name of the node */
85
- name: string;
86
- /** Description of the node */
87
- description?: string;
88
- /** Schema for node inputs */
89
- params?: P extends void ? never : ZodSchema<P>;
90
- /** Execute function for the node */
91
- execute: (
92
- context: GraphContext<T>,
93
- params?: P,
94
- tools?: { eventEmitter: IEventEmitter }
95
- ) => Promise<void>;
96
- /** Optional condition for node execution */
97
- condition?: (context: GraphContext<T>, params?: P) => boolean;
98
- /** Array of next node names */
99
- next?: string[] | ((context: GraphContext<T>) => string[]);
100
- /** Array of event names that trigger this node */
101
- events?: string[];
102
- /** Wait for a single event before continuing */
103
- waitForEvent?: boolean;
104
- /** Wait for multiple events configuration */
105
- waitForEvents?: WaitForEvents;
106
- /** Event correlation configuration */
107
- correlateEvents?: {
108
- events: string[];
109
- timeout: number;
110
- correlation: (events: any[]) => boolean;
111
- };
112
- /** Retry configuration */
113
- retry?: {
114
- /** Maximum number of retry attempts */
115
- maxAttempts: number;
116
- /** Delay between retries in milliseconds */
117
- delay: number;
118
- /** Error handler function */
119
- onRetryFailed?: (error: Error, context: GraphContext<T>) => Promise<void>;
120
- /** Continue execution on failed retry */
121
- continueOnFailed?: boolean;
122
- };
123
- /** Error handler function */
124
- onError?: (error: Error) => void;
125
- }
126
-
127
- /**
128
- * Interface for graph definition
129
- * @interface
130
- * @template T - Schema type
131
- */
132
- export interface GraphDefinition<T extends ZodSchema> {
133
- /** Name of the graph */
134
- name: string;
135
- /** Array of nodes in the graph */
136
- nodes: Node<T, any>[];
137
- /** Initial context */
138
- context: SchemaType<T>;
139
- /** Schema for validation */
140
- schema: T;
141
- /** Global error handler */
142
- onError?: (error: Error, context: GraphContext<T>) => void;
143
- /** Entry node name */
144
- entryNode?: string;
145
- /** Event emitter instance */
146
- eventEmitter?: IEventEmitter | EventEmitter;
147
- /** Array of events */
148
- events?: string[];
149
- }
150
-
151
- /* ======================== MEILISEARCH ======================== */
152
-
153
- /**
154
- * Configuration type for Meilisearch
155
- * @typedef {Object} MeilisearchConfig
156
- */
157
- export type MeilisearchConfig = {
158
- /** Meilisearch host URL */
159
- host: string;
160
- /** API key for authentication */
161
- apiKey: string;
162
- /** Array of searchable attributes */
163
- searchableAttributes?: string[];
164
- /** Array of sortable attributes */
165
- sortableAttributes?: string[];
166
- };
167
-
168
- /**
169
- * Settings type for Meilisearch
170
- * @typedef {Object} MeilisearchSettings
171
- */
172
- export type MeilisearchSettings = {
173
- /** Array of searchable attributes */
174
- searchableAttributes?: string[];
175
- /** Array of sortable attributes */
176
- sortableAttributes?: string[];
177
- };
178
-
179
- export interface GraphEvent<T extends ZodSchema> {
180
- type: string;
181
- payload?: any;
182
- timestamp: number;
183
- }
184
-
185
- export interface WaitForEvents {
186
- events: string[];
187
- timeout?: number;
188
- strategy: "all" | "any" | "race";
189
- onSuccess?: <T extends ZodSchema>(context: GraphContext<T>) => Promise<void>;
190
- }
@@ -1,46 +0,0 @@
1
- import { z } from "zod";
2
- import { GraphFlow } from "../graph/index";
3
-
4
- export const generateActionSchema = (graphs: GraphFlow<any>[]) => {
5
- return graphs
6
- .map((graph) => {
7
- const rootNode = Array.from(graph.nodes.values())[0];
8
- const schemaStr = rootNode.params
9
- ? getSchemaString(rootNode.params)
10
- : "No parameters";
11
- return `Workflow: ${graph.name}\nParameters: ${schemaStr}`;
12
- })
13
- .join("\n\n");
14
- };
15
-
16
- export const getSchemaString = (schema: z.ZodType): string => {
17
- if (schema instanceof z.ZodObject) {
18
- const entries = Object.entries(schema.shape);
19
- const fields = entries.map(([key, value]) => {
20
- const description = (value as any)._def.description;
21
- const schemaStr = getSchemaString(value as z.ZodType);
22
- return description
23
- ? `${key}: ${schemaStr} // ${description}`
24
- : `${key}: ${schemaStr}`;
25
- });
26
- return `z.object({${fields.join(", ")}})`;
27
- }
28
-
29
- if (schema instanceof z.ZodArray) {
30
- return `z.array(${getSchemaString(schema.element)})`;
31
- }
32
-
33
- if (schema instanceof z.ZodString) {
34
- return "z.string()";
35
- }
36
-
37
- if (schema instanceof z.ZodNumber) {
38
- return "z.number()";
39
- }
40
-
41
- if (schema instanceof z.ZodBoolean) {
42
- return "z.boolean()";
43
- }
44
-
45
- return `z.unknown()`;
46
- };
@@ -1,40 +0,0 @@
1
- type HeaderValue = string | string[] | undefined;
2
-
3
- export class LLMHeaderBuilder {
4
- private headers: Map<string, HeaderValue>;
5
- private _result: string;
6
-
7
- constructor() {
8
- this.headers = new Map();
9
- this._result = "";
10
- }
11
-
12
- addHeader(key: string, value: HeaderValue): LLMHeaderBuilder {
13
- if (Array.isArray(value)) {
14
- this.headers.set(key, value.join("\n"));
15
- } else {
16
- this.headers.set(key, value);
17
- }
18
-
19
- // Build result immediately
20
- this._result = Array.from(this.headers.entries())
21
- .filter(([_, value]) => value !== undefined)
22
- .map(([key, value]) => `# ${key}: ${value}`)
23
- .join("\n")
24
- .trim();
25
-
26
- return this;
27
- }
28
-
29
- valueOf(): string {
30
- return this._result;
31
- }
32
-
33
- toString(): string {
34
- return this._result;
35
- }
36
-
37
- static create(): LLMHeaderBuilder {
38
- return new LLMHeaderBuilder();
39
- }
40
- }