@ai.ntellect/core 0.3.1 → 0.4.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 (86) hide show
  1. package/.nvmrc +1 -0
  2. package/README.FR.md +201 -261
  3. package/README.md +208 -260
  4. package/agent/index.ts +204 -185
  5. package/agent/tools/get-rss.ts +64 -0
  6. package/bull.ts +5 -0
  7. package/dist/agent/index.d.ts +29 -22
  8. package/dist/agent/index.js +124 -97
  9. package/dist/agent/tools/get-rss.d.ts +16 -0
  10. package/dist/agent/tools/get-rss.js +62 -0
  11. package/dist/bull.d.ts +1 -0
  12. package/dist/bull.js +9 -0
  13. package/dist/examples/index.d.ts +2 -0
  14. package/dist/examples/index.js +89 -0
  15. package/dist/llm/interpreter/context.d.ts +5 -22
  16. package/dist/llm/interpreter/context.js +8 -9
  17. package/dist/llm/interpreter/index.d.ts +9 -5
  18. package/dist/llm/interpreter/index.js +55 -48
  19. package/dist/llm/memory-manager/context.d.ts +2 -0
  20. package/dist/llm/memory-manager/context.js +22 -0
  21. package/dist/llm/memory-manager/index.d.ts +17 -0
  22. package/dist/llm/memory-manager/index.js +107 -0
  23. package/dist/llm/orchestrator/context.d.ts +2 -10
  24. package/dist/llm/orchestrator/context.js +19 -16
  25. package/dist/llm/orchestrator/index.d.ts +36 -21
  26. package/dist/llm/orchestrator/index.js +122 -88
  27. package/dist/llm/orchestrator/types.d.ts +12 -0
  28. package/dist/llm/orchestrator/types.js +2 -0
  29. package/dist/memory/cache.d.ts +6 -6
  30. package/dist/memory/cache.js +35 -42
  31. package/dist/memory/persistent.d.ts +9 -13
  32. package/dist/memory/persistent.js +94 -114
  33. package/dist/services/redis-cache.d.ts +37 -0
  34. package/dist/services/redis-cache.js +93 -0
  35. package/dist/services/scheduler.d.ts +40 -0
  36. package/dist/services/scheduler.js +99 -0
  37. package/dist/services/telegram-monitor.d.ts +0 -0
  38. package/dist/services/telegram-monitor.js +118 -0
  39. package/dist/test.d.ts +0 -167
  40. package/dist/test.js +437 -372
  41. package/dist/types.d.ts +60 -9
  42. package/dist/utils/generate-object.d.ts +12 -0
  43. package/dist/utils/generate-object.js +90 -0
  44. package/dist/utils/header-builder.d.ts +11 -0
  45. package/dist/utils/header-builder.js +34 -0
  46. package/dist/utils/inject-actions.js +2 -2
  47. package/dist/utils/queue-item-transformer.d.ts +2 -2
  48. package/dist/utils/schema-generator.d.ts +16 -0
  49. package/dist/utils/schema-generator.js +46 -0
  50. package/examples/index.ts +103 -0
  51. package/llm/interpreter/context.ts +20 -8
  52. package/llm/interpreter/index.ts +81 -54
  53. package/llm/memory-manager/context.ts +21 -0
  54. package/llm/memory-manager/index.ts +163 -0
  55. package/llm/orchestrator/context.ts +20 -13
  56. package/llm/orchestrator/index.ts +210 -130
  57. package/llm/orchestrator/types.ts +14 -0
  58. package/memory/cache.ts +41 -55
  59. package/memory/persistent.ts +121 -149
  60. package/package.json +11 -2
  61. package/services/redis-cache.ts +128 -0
  62. package/services/scheduler.ts +128 -0
  63. package/services/telegram-monitor.ts +138 -0
  64. package/t.py +79 -0
  65. package/t.spec +38 -0
  66. package/types.ts +64 -9
  67. package/utils/generate-object.ts +105 -0
  68. package/utils/header-builder.ts +40 -0
  69. package/utils/inject-actions.ts +4 -6
  70. package/utils/queue-item-transformer.ts +2 -1
  71. package/utils/schema-generator.ts +73 -0
  72. package/agent/handlers/ActionHandler.ts +0 -48
  73. package/agent/handlers/ConfirmationHandler.ts +0 -37
  74. package/agent/handlers/EventHandler.ts +0 -35
  75. package/dist/agent/handlers/ActionHandler.d.ts +0 -8
  76. package/dist/agent/handlers/ActionHandler.js +0 -36
  77. package/dist/agent/handlers/ConfirmationHandler.d.ts +0 -7
  78. package/dist/agent/handlers/ConfirmationHandler.js +0 -31
  79. package/dist/agent/handlers/EventHandler.d.ts +0 -10
  80. package/dist/agent/handlers/EventHandler.js +0 -34
  81. package/dist/llm/evaluator/context.d.ts +0 -10
  82. package/dist/llm/evaluator/context.js +0 -22
  83. package/dist/llm/evaluator/index.d.ts +0 -16
  84. package/dist/llm/evaluator/index.js +0 -151
  85. package/llm/evaluator/context.ts +0 -21
  86. package/llm/evaluator/index.ts +0 -194
package/agent/index.ts CHANGED
@@ -1,224 +1,243 @@
1
- import { Evaluator } from "../llm/evaluator";
1
+ import { LanguageModel } from "ai";
2
+ import WebSocket from "ws";
2
3
  import { Interpreter } from "../llm/interpreter";
3
- import { Orchestrator } from "../llm/orchestrator";
4
+ import { MemoryManager } from "../llm/memory-manager";
5
+ import { AgentRuntime } from "../llm/orchestrator";
6
+ import { State } from "../llm/orchestrator/types";
4
7
  import { CacheMemory } from "../memory/cache";
5
8
  import { PersistentMemory } from "../memory/persistent";
6
- import { ActionSchema, AgentEvent, MemoryScope, QueueResult } from "../types";
9
+ import { ActionQueueManager } from "../services/queue";
10
+ import { CacheConfig, RedisCache } from "../services/redis-cache";
11
+ import { ActionData, ActionSchema, QueueCallbacks } from "../types";
7
12
  import { QueueItemTransformer } from "../utils/queue-item-transformer";
8
- import { ResultSanitizer } from "../utils/sanitize-results";
9
- import { ActionHandler } from "./handlers/ActionHandler";
10
-
11
13
  export class Agent {
12
- private readonly actionHandler: ActionHandler;
13
- private readonly orchestrator: Orchestrator;
14
- private readonly interpreters: Interpreter[];
15
- private readonly memory: {
16
- persistent: PersistentMemory;
17
- cache?: CacheMemory;
14
+ private readonly agent: AgentRuntime;
15
+ private readonly memoryManager: MemoryManager;
16
+ private readonly cache: RedisCache;
17
+
18
+ private webSocketClients: Map<
19
+ string,
20
+ { socket: WebSocket; callback: (data: any) => Promise<void> }
21
+ > = new Map();
22
+ private readonly config: {
23
+ orchestrator: {
24
+ model: LanguageModel;
25
+ tools: ActionSchema[];
26
+ memory?: {
27
+ cache?: CacheMemory;
28
+ persistent?: PersistentMemory;
29
+ };
30
+ };
31
+ interpreters: Interpreter[];
32
+ memoryManager: {
33
+ model: LanguageModel;
34
+ memory?: {
35
+ cache?: CacheMemory;
36
+ persistent?: PersistentMemory;
37
+ };
38
+ };
39
+ maxIterations: number;
18
40
  };
19
- private readonly stream: boolean;
20
- private readonly maxEvaluatorIteration: number;
21
- private evaluatorIteration = 0;
22
- private accumulatedResults: string = "";
23
- private currentInterpreter: Interpreter | undefined;
24
-
25
- constructor({
26
- orchestrator,
27
- interpreters,
28
- memory,
29
- stream,
30
- maxEvaluatorIteration = 1,
31
- }: {
32
- orchestrator: Orchestrator;
41
+
42
+ constructor(config: {
43
+ cache: CacheConfig;
44
+ orchestrator: {
45
+ model: LanguageModel;
46
+ tools: ActionSchema[];
47
+ memory?: {
48
+ cache?: CacheMemory;
49
+ persistent?: PersistentMemory;
50
+ };
51
+ };
33
52
  interpreters: Interpreter[];
34
- memory: {
35
- persistent: PersistentMemory;
36
- cache?: CacheMemory;
53
+ memoryManager: {
54
+ model: LanguageModel;
55
+ memory?: {
56
+ cache?: CacheMemory;
57
+ persistent?: PersistentMemory;
58
+ };
37
59
  };
38
- stream: boolean;
39
- maxEvaluatorIteration: number;
60
+ callbacks?: QueueCallbacks;
61
+ maxIterations: number;
40
62
  }) {
41
- this.orchestrator = orchestrator;
42
- this.interpreters = interpreters;
43
- this.memory = memory;
44
- this.stream = stream;
45
- this.maxEvaluatorIteration = maxEvaluatorIteration;
46
- this.actionHandler = new ActionHandler();
47
- this.accumulatedResults = "";
63
+ this.cache = new RedisCache(config.cache);
64
+ this.config = config;
65
+ this.agent = new AgentRuntime(
66
+ config.orchestrator.model,
67
+ config.orchestrator.tools,
68
+ config.interpreters,
69
+ config.cache,
70
+ config.orchestrator.memory
71
+ );
72
+ this.memoryManager = new MemoryManager({
73
+ model: config.memoryManager.model,
74
+ memory: {
75
+ cache: config.memoryManager.memory?.cache ?? undefined,
76
+ persistent: config.memoryManager.memory?.persistent ?? undefined,
77
+ },
78
+ });
79
+ this.config.maxIterations = 3;
48
80
  }
49
81
 
50
- async process(prompt: string, events: AgentEvent): Promise<any> {
51
- this.accumulatedResults = "";
52
- this.evaluatorIteration = 0;
53
- console.log("Requesting orchestrator for actions..");
54
- const cacheMemories = await this.memory.cache?.findSimilarActions(prompt, {
55
- similarityThreshold: 70,
56
- maxResults: 5,
57
- userId: "1",
58
- scope: MemoryScope.GLOBAL,
59
- });
60
- console.log("✅ RECENT_ACTIONS: ", cacheMemories);
82
+ public async process(state: State, callbacks?: QueueCallbacks): Promise<any> {
83
+ console.log("🔄 Processing state:");
84
+ console.dir(state, { depth: null });
85
+ let countIterations = 0;
86
+ const response = await this.agent.process(state);
61
87
 
62
- const persistentMemory = await this.memory.persistent.findRelevantDocuments(
63
- prompt,
64
- {
65
- similarityThreshold: 80,
66
- }
88
+ const unscheduledActions = response.actions.filter(
89
+ (action) => !action.scheduler?.isScheduled
67
90
  );
68
- console.log("✅ PERSISTENT_MEMORY: ", persistentMemory);
69
- const request = await this.orchestrator.process(
70
- prompt,
71
- `## RECENT_ACTIONS: ${JSON.stringify(
72
- cacheMemories
73
- )} ## PERSISTENT_MEMORY: ${JSON.stringify(
74
- persistentMemory
75
- )} ## CURRENT_RESULTS: ${this.accumulatedResults}`
76
- );
77
- events.onMessage?.(request);
78
-
79
- return request.actions.length > 0
80
- ? this.handleActions(
81
- {
82
- initialPrompt: prompt,
83
- actions: request.actions,
84
- },
85
- events
86
- )
87
- : undefined;
88
- }
89
-
90
- private async handleActions(
91
- {
92
- initialPrompt,
93
- actions,
94
- }: {
95
- initialPrompt: string;
96
- actions: {
97
- name: string;
98
- type: string;
99
- parameters: {
100
- name: string;
101
- value: any;
102
- }[];
103
- }[];
104
- },
105
- events: AgentEvent
106
- ): Promise<any> {
107
- const queueItems = this.transformActions(actions as any);
108
-
109
- const actionsResult = await this.actionHandler.executeActions(
110
- queueItems,
111
- this.orchestrator.tools,
112
- {
113
- onQueueStart: events.onQueueStart,
114
- onActionStart: events.onActionStart,
115
- onActionComplete: events.onActionComplete,
116
- onQueueComplete: events.onQueueComplete,
117
- onConfirmationRequired: events.onConfirmationRequired,
91
+ // Execute actions if needed
92
+ if (unscheduledActions?.length > 0 && response.shouldContinue) {
93
+ console.log("\n📋 Processing action queue");
94
+ const queueManager = new ActionQueueManager(
95
+ this.config.orchestrator.tools,
96
+ callbacks
97
+ );
98
+ const queueItems = QueueItemTransformer.transformActionsToQueueItems(
99
+ response.actions as ActionData[]
100
+ );
101
+ if (!queueItems) {
102
+ throw new Error("No queue items found");
118
103
  }
119
- );
120
104
 
121
- this.accumulatedResults += this.formatResults(actionsResult.data);
105
+ console.log(
106
+ "📋 Actions to execute:",
107
+ queueItems
108
+ .map((item) => (typeof item === "string" ? item : item.name))
109
+ .join(", ")
110
+ );
122
111
 
123
- const isOnChainAction = actions.some(
124
- (action) => action.type === "on-chain"
125
- );
112
+ queueManager.addToQueue(queueItems);
113
+ console.log("\n⚡ Executing actions...");
114
+ const results = await queueManager.processQueue();
115
+ console.log("✅ Execution results:", results);
126
116
 
127
- if (isOnChainAction) {
128
- return {
129
- data: this.accumulatedResults,
130
- initialPrompt,
117
+ const updatedNextState: State = {
118
+ ...state,
119
+ currentContext: state.currentContext,
120
+ previousActions: [...(state.previousActions || []), ...(results || [])],
131
121
  };
132
- }
133
122
 
134
- if (this.evaluatorIteration >= this.maxEvaluatorIteration) {
135
- return this.interpreterResult({
136
- data: this.accumulatedResults,
137
- initialPrompt,
138
- interpreter: this.currentInterpreter,
139
- });
123
+ console.log("\n🔁 Recursively processing with updated state");
124
+ countIterations++;
125
+ if (countIterations < this.config.maxIterations) {
126
+ return this.process(updatedNextState);
127
+ }
140
128
  }
141
129
 
142
- const evaluator = new Evaluator(
143
- this.orchestrator.tools,
144
- this.memory,
145
- this.interpreters
146
- );
130
+ if (countIterations >= this.config.maxIterations) {
131
+ console.log("Max iterations reached");
132
+ response.shouldContinue = false;
133
+ console.log("Forcing stop");
134
+ }
147
135
 
148
- const evaluation = await evaluator.process(
149
- initialPrompt,
150
- this.accumulatedResults
151
- );
136
+ // Handle final interpretation
137
+ if (
138
+ !response.shouldContinue &&
139
+ state.previousActions?.length &&
140
+ response.interpreter
141
+ ) {
142
+ console.log("\n🏁 Analysis complete - generating final interpretation");
143
+ const interpreter = this.getInterpreter(
144
+ this.config.interpreters,
145
+ response.interpreter
146
+ );
147
+ console.log("🎭 Selected Interpreter:", interpreter?.name);
148
+ console.dir(state, { depth: null });
149
+ const interpretationResult = (await interpreter?.process(
150
+ "Interpret the analysis results",
151
+ {
152
+ ...state,
153
+ results: JSON.stringify(state.previousActions),
154
+ userRequest: state.currentContext,
155
+ }
156
+ )) as { response: string };
152
157
 
153
- this.currentInterpreter = this.getInterpreter(
154
- this.interpreters,
155
- evaluation.interpreter
156
- );
158
+ console.log("\n📊 Final Analysis:", interpretationResult.response);
157
159
 
158
- events.onMessage?.(evaluation);
160
+ const finalState: State = {
161
+ ...state,
162
+ results: interpretationResult.response,
163
+ };
159
164
 
160
- if (evaluation.isNextActionNeeded) {
161
- this.evaluatorIteration++;
162
- return this.handleActions(
163
- {
164
- initialPrompt: initialPrompt,
165
- actions: evaluation.nextActionsNeeded,
166
- },
167
- events
168
- );
165
+ console.log("🔄 Final state:", finalState);
169
166
  }
170
167
 
171
- return this.interpreterResult({
172
- data: this.accumulatedResults,
173
- initialPrompt,
174
- interpreter: this.currentInterpreter,
175
- });
168
+ // Return the final response at the end of the function
169
+ const validatedActions = response.actions.map((action) => ({
170
+ ...action,
171
+ parameters: action.parameters.map((param) => ({
172
+ ...param,
173
+ value: param.value ?? null, // Set a default value if undefined
174
+ })),
175
+ }));
176
+
177
+ const result = {
178
+ ...response,
179
+ actions: validatedActions,
180
+ results: JSON.stringify(state.previousActions),
181
+ };
182
+ if (!result.shouldContinue) {
183
+ await this.memoryManager.process(state, JSON.stringify(result));
184
+ }
185
+ return result;
176
186
  }
177
187
 
178
188
  private getInterpreter(interpreters: Interpreter[], name: string) {
179
- console.log({ interpreters, name });
180
189
  return interpreters.find((interpreter) => interpreter.name === name);
181
190
  }
182
191
 
183
- private async interpreterResult(actionsResult: {
184
- data: string;
185
- initialPrompt: string;
186
- interpreter: Interpreter | undefined;
187
- }) {
188
- const { interpreter, initialPrompt, data } = actionsResult;
189
- if (!interpreter) {
190
- throw new Error("Interpreter not found");
192
+ public addListener(
193
+ id: string,
194
+ url: string,
195
+ subscriptionMessageFactory: () => string,
196
+ callback: (data: any, agentContext: Agent) => Promise<void>
197
+ ): void {
198
+ if (this.webSocketClients.has(id)) {
199
+ console.warn(`WebSocket with ID ${id} already exists.`);
200
+ return;
191
201
  }
192
- console.log("✅ INTERPRETER: ", interpreter.name);
193
- return this.stream
194
- ? (
195
- await interpreter.streamProcess(initialPrompt, {
196
- userRequest: initialPrompt,
197
- results: data,
198
- })
199
- ).toDataStreamResponse()
200
- : await interpreter.process(initialPrompt, {
201
- userRequest: initialPrompt,
202
- results: data,
203
- });
204
- }
205
202
 
206
- private transformActions(actions: ActionSchema[]) {
207
- let predefinedActions =
208
- QueueItemTransformer.transformActionsToQueueItems(actions) || [];
203
+ const socket = new WebSocket(url);
209
204
 
210
- return predefinedActions;
211
- }
205
+ const wrappedCallback = async (data: any) => {
206
+ await callback(data, this);
207
+ };
212
208
 
213
- private formatResults(results: QueueResult[]): string {
214
- const formattedResults = results.map((result) => ({
215
- ...result,
216
- result:
217
- typeof result.result === "object"
218
- ? JSON.stringify(result.result)
219
- : result.result,
220
- }));
221
- const sanitizedResults = ResultSanitizer.sanitize(formattedResults);
222
- return sanitizedResults;
209
+ socket.on("open", () => {
210
+ console.log(`🔗 WebSocket connected for ID: ${id}`);
211
+
212
+ // Envoie le message d'abonnement si une factory est fournie
213
+ if (subscriptionMessageFactory) {
214
+ const subscriptionMessage = subscriptionMessageFactory();
215
+ socket.send(subscriptionMessage);
216
+ console.log(
217
+ `📡 Sent subscription message for ID ${id}:`,
218
+ subscriptionMessage
219
+ );
220
+ }
221
+ });
222
+
223
+ socket.on("message", async (message: string) => {
224
+ console.log(`📨 Message received for WebSocket ID ${id}:`, message);
225
+ try {
226
+ const data = JSON.parse(message);
227
+ await wrappedCallback(data);
228
+ } catch (error) {
229
+ console.error(`❌ Error in callback for WebSocket ID ${id}:`, error);
230
+ }
231
+ });
232
+
233
+ socket.on("error", (error) => {
234
+ console.error(`❌ WebSocket error for ID ${id}:`, error);
235
+ });
236
+
237
+ socket.on("close", () => {
238
+ console.log(`🔌 WebSocket closed for ID: ${id}`);
239
+ });
240
+
241
+ this.webSocketClients.set(id, { socket, callback: wrappedCallback });
223
242
  }
224
243
  }
@@ -0,0 +1,64 @@
1
+ import Parser from "rss-parser";
2
+ import { z } from "zod";
3
+
4
+ const RSS_FEEDS = [
5
+ "https://www.investing.com/rss/news_301.rss",
6
+ "https://cointelegraph.com/rss/category/analysis",
7
+ "https://cointelegraph.com/rss/category/top-10-cryptocurrencies",
8
+ ];
9
+
10
+ const parser = new Parser();
11
+
12
+ function stripHtmlTags(content: string): string {
13
+ if (!content) return "";
14
+ return content
15
+ .replace(/<[^>]*>/g, "")
16
+ .replace(/\n/g, "")
17
+ .replace(" ", "");
18
+ }
19
+
20
+ export const getRssNews = {
21
+ name: "get-news-rss",
22
+ description: "Get latest news about on website",
23
+ parameters: z.object({}),
24
+ execute: async () => {
25
+ const itemsPerSource = 5;
26
+
27
+ try {
28
+ const feedPromises = RSS_FEEDS.map((url) => parser.parseURL(url));
29
+ const results = await Promise.allSettled(feedPromises);
30
+ const successfulFeeds = results
31
+ .filter(
32
+ (result): result is PromiseFulfilledResult<Parser.Output<any>> => {
33
+ return (
34
+ result.status === "fulfilled" && result.value?.items?.length > 0
35
+ );
36
+ }
37
+ )
38
+ .map((result) => result.value);
39
+ const allItems = successfulFeeds
40
+ .flatMap((feed) => feed.items.slice(0, itemsPerSource))
41
+ .sort((a, b) => {
42
+ const dateA = a.pubDate ? new Date(a.pubDate).getTime() : 0;
43
+ const dateB = b.pubDate ? new Date(b.pubDate).getTime() : 0;
44
+ return dateB - dateA;
45
+ })
46
+ .slice(0, 5)
47
+ .map((item) => ({
48
+ title: item.title,
49
+ content: stripHtmlTags(item.content),
50
+ link: item.link,
51
+ date: item.pubDate,
52
+ source: item.creator || new URL(item.link).hostname,
53
+ }));
54
+
55
+ const result = {
56
+ status: "success",
57
+ items: allItems,
58
+ };
59
+ return result;
60
+ } catch (error: any) {
61
+ throw error;
62
+ }
63
+ },
64
+ };
package/bull.ts ADDED
@@ -0,0 +1,5 @@
1
+ import cron from "node-cron";
2
+
3
+ cron.schedule("* * * * *", () => {
4
+ console.log("running a task every minute");
5
+ });
@@ -1,31 +1,38 @@
1
+ import { LanguageModel } from "ai";
1
2
  import { Interpreter } from "../llm/interpreter";
2
- import { Orchestrator } from "../llm/orchestrator";
3
+ import { State } from "../llm/orchestrator/types";
3
4
  import { CacheMemory } from "../memory/cache";
4
5
  import { PersistentMemory } from "../memory/persistent";
5
- import { AgentEvent } from "../types";
6
+ import { CacheConfig } from "../services/redis-cache";
7
+ import { ActionSchema, QueueCallbacks } from "../types";
6
8
  export declare class Agent {
7
- private readonly actionHandler;
8
- private readonly orchestrator;
9
- private readonly interpreters;
10
- private readonly memory;
11
- private readonly stream;
12
- private readonly maxEvaluatorIteration;
13
- private evaluatorIteration;
14
- private accumulatedResults;
15
- constructor({ orchestrator, interpreters, memory, stream, maxEvaluatorIteration, }: {
16
- orchestrator: Orchestrator;
9
+ private readonly agent;
10
+ private readonly memoryManager;
11
+ private readonly cache;
12
+ private webSocketClients;
13
+ private readonly config;
14
+ constructor(config: {
15
+ cache: CacheConfig;
16
+ orchestrator: {
17
+ model: LanguageModel;
18
+ tools: ActionSchema[];
19
+ memory?: {
20
+ cache?: CacheMemory;
21
+ persistent?: PersistentMemory;
22
+ };
23
+ };
17
24
  interpreters: Interpreter[];
18
- memory: {
19
- persistent: PersistentMemory;
20
- cache?: CacheMemory;
25
+ memoryManager: {
26
+ model: LanguageModel;
27
+ memory?: {
28
+ cache?: CacheMemory;
29
+ persistent?: PersistentMemory;
30
+ };
21
31
  };
22
- stream: boolean;
23
- maxEvaluatorIteration: number;
32
+ callbacks?: QueueCallbacks;
33
+ maxIterations: number;
24
34
  });
25
- process(prompt: string, events: AgentEvent): Promise<any>;
26
- private handleActions;
35
+ process(state: State, callbacks?: QueueCallbacks): Promise<any>;
27
36
  private getInterpreter;
28
- private interpreterResult;
29
- private transformActions;
30
- private formatResults;
37
+ addListener(id: string, url: string, subscriptionMessageFactory: () => string, callback: (data: any, agentContext: Agent) => Promise<void>): void;
31
38
  }