@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.
- package/README.md +158 -81
- package/index.ts +462 -22
- package/package copy.json +21 -0
- package/package.json +9 -44
- package/tsconfig.json +108 -22
- package/types.ts +62 -0
- package/utils/executor.ts +42 -0
- package/.mocharc.json +0 -5
- package/dist/graph/controller.d.ts +0 -31
- package/dist/graph/controller.d.ts.map +0 -1
- package/dist/graph/controller.js +0 -71
- package/dist/graph/controller.js.map +0 -1
- package/dist/graph/event-manager.d.ts +0 -93
- package/dist/graph/event-manager.d.ts.map +0 -1
- package/dist/graph/event-manager.js +0 -296
- package/dist/graph/event-manager.js.map +0 -1
- package/dist/graph/index.d.ts +0 -159
- package/dist/graph/index.d.ts.map +0 -1
- package/dist/graph/index.js +0 -303
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/logger.d.ts +0 -46
- package/dist/graph/logger.d.ts.map +0 -1
- package/dist/graph/logger.js +0 -69
- package/dist/graph/logger.js.map +0 -1
- package/dist/graph/node.d.ts +0 -93
- package/dist/graph/node.d.ts.map +0 -1
- package/dist/graph/node.js +0 -259
- package/dist/graph/node.js.map +0 -1
- package/dist/graph/observer.d.ts +0 -115
- package/dist/graph/observer.d.ts.map +0 -1
- package/dist/graph/observer.js +0 -198
- package/dist/graph/observer.js.map +0 -1
- package/dist/index.d.ts +0 -26
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -42
- package/dist/index.js.map +0 -1
- package/dist/interfaces/index.d.ts +0 -447
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -75
- package/dist/interfaces/index.js.map +0 -1
- package/dist/modules/agenda/adapters/node-cron/index.d.ts +0 -17
- package/dist/modules/agenda/adapters/node-cron/index.d.ts.map +0 -1
- package/dist/modules/agenda/adapters/node-cron/index.js +0 -30
- package/dist/modules/agenda/adapters/node-cron/index.js.map +0 -1
- package/dist/modules/agenda/index.d.ts +0 -63
- package/dist/modules/agenda/index.d.ts.map +0 -1
- package/dist/modules/agenda/index.js +0 -141
- package/dist/modules/agenda/index.js.map +0 -1
- package/dist/modules/embedding/adapters/ai/index.d.ts +0 -29
- package/dist/modules/embedding/adapters/ai/index.d.ts.map +0 -1
- package/dist/modules/embedding/adapters/ai/index.js +0 -58
- package/dist/modules/embedding/adapters/ai/index.js.map +0 -1
- package/dist/modules/embedding/index.d.ts +0 -36
- package/dist/modules/embedding/index.d.ts.map +0 -1
- package/dist/modules/embedding/index.js +0 -60
- package/dist/modules/embedding/index.js.map +0 -1
- package/dist/modules/memory/adapters/in-memory/index.d.ts +0 -120
- package/dist/modules/memory/adapters/in-memory/index.d.ts.map +0 -1
- package/dist/modules/memory/adapters/in-memory/index.js +0 -211
- package/dist/modules/memory/adapters/in-memory/index.js.map +0 -1
- package/dist/modules/memory/adapters/meilisearch/index.d.ts +0 -110
- package/dist/modules/memory/adapters/meilisearch/index.d.ts.map +0 -1
- package/dist/modules/memory/adapters/meilisearch/index.js +0 -321
- package/dist/modules/memory/adapters/meilisearch/index.js.map +0 -1
- package/dist/modules/memory/adapters/redis/index.d.ts +0 -82
- package/dist/modules/memory/adapters/redis/index.d.ts.map +0 -1
- package/dist/modules/memory/adapters/redis/index.js +0 -159
- package/dist/modules/memory/adapters/redis/index.js.map +0 -1
- package/dist/modules/memory/index.d.ts +0 -67
- package/dist/modules/memory/index.d.ts.map +0 -1
- package/dist/modules/memory/index.js +0 -104
- package/dist/modules/memory/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -170
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/generate-action-schema.d.ts +0 -5
- package/dist/utils/generate-action-schema.d.ts.map +0 -1
- package/dist/utils/generate-action-schema.js +0 -44
- package/dist/utils/generate-action-schema.js.map +0 -1
- package/dist/utils/header-builder.d.ts +0 -12
- package/dist/utils/header-builder.d.ts.map +0 -1
- package/dist/utils/header-builder.js +0 -35
- package/dist/utils/header-builder.js.map +0 -1
- package/graph/controller.ts +0 -74
- package/graph/event-manager.ts +0 -363
- package/graph/index.ts +0 -395
- package/graph/logger.ts +0 -70
- package/graph/node.ts +0 -327
- package/graph/observer.ts +0 -368
- package/interfaces/index.ts +0 -548
- package/modules/agenda/adapters/node-cron/index.ts +0 -25
- package/modules/agenda/index.ts +0 -146
- package/modules/embedding/adapters/ai/index.ts +0 -42
- package/modules/embedding/index.ts +0 -45
- package/modules/memory/adapters/in-memory/index.ts +0 -207
- package/modules/memory/adapters/meilisearch/index.ts +0 -361
- package/modules/memory/adapters/redis/index.ts +0 -164
- package/modules/memory/index.ts +0 -93
- package/test/graph/controller.test.ts +0 -187
- package/test/graph/event-manager.test.ts +0 -118
- package/test/graph/index.test.ts +0 -684
- package/test/graph/node.test.ts +0 -655
- package/test/graph/observer.test.ts +0 -398
- package/test/modules/agenda/node-cron.test.ts +0 -307
- package/test/modules/memory/adapters/in-memory.test.ts +0 -153
- package/test/modules/memory/adapters/meilisearch.test.ts +0 -287
- package/test/modules/memory/base.test.ts +0 -230
- package/types/index.ts +0 -190
- package/utils/generate-action-schema.ts +0 -46
- 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
|
-
};
|
package/utils/header-builder.ts
DELETED
@@ -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
|
-
}
|