@astrive-ai/agent 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/dist/astrive-ai.d.ts +30 -0
- package/dist/astrive-ai.d.ts.map +1 -0
- package/dist/astrive-ai.js +298 -0
- package/dist/astrive-ai.js.map +1 -0
- package/dist/conversation-manager.d.ts +16 -0
- package/dist/conversation-manager.d.ts.map +1 -0
- package/dist/conversation-manager.js +47 -0
- package/dist/conversation-manager.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/multi-agent.d.ts +14 -0
- package/dist/multi-agent.d.ts.map +1 -0
- package/dist/multi-agent.js +58 -0
- package/dist/multi-agent.js.map +1 -0
- package/dist/plugin-manager.d.ts +10 -0
- package/dist/plugin-manager.d.ts.map +1 -0
- package/dist/plugin-manager.js +34 -0
- package/dist/plugin-manager.js.map +1 -0
- package/dist/reflection.d.ts +15 -0
- package/dist/reflection.d.ts.map +1 -0
- package/dist/reflection.js +51 -0
- package/dist/reflection.js.map +1 -0
- package/package.json +30 -0
- package/src/astrive-ai.ts +357 -0
- package/src/conversation-manager.ts +67 -0
- package/src/index.ts +5 -0
- package/src/multi-agent.ts +75 -0
- package/src/plugin-manager.ts +42 -0
- package/src/reflection.ts +70 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AstriveConfig, IAgent, ChatInput, ChatOptions, AgentResponse, AgentStreamChunk, IPlugin, ITool, IProvider } from "@astrive-ai/types";
|
|
2
|
+
type ToolFactory = () => ITool;
|
|
3
|
+
export declare class AstriveAI implements IAgent {
|
|
4
|
+
private config;
|
|
5
|
+
private logger;
|
|
6
|
+
private events;
|
|
7
|
+
private providerManager;
|
|
8
|
+
private toolRegistry;
|
|
9
|
+
private memoryManager;
|
|
10
|
+
private middlewarePipeline;
|
|
11
|
+
private toolExecutor;
|
|
12
|
+
private planner;
|
|
13
|
+
private conversationManager;
|
|
14
|
+
private pluginManager;
|
|
15
|
+
private reflectionEngine;
|
|
16
|
+
private initialized;
|
|
17
|
+
constructor(config: AstriveConfig);
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
chat(input: string | ChatInput, options?: ChatOptions): Promise<AgentResponse>;
|
|
20
|
+
chatStream(input: string | ChatInput, options?: ChatOptions): AsyncGenerator<AgentStreamChunk>;
|
|
21
|
+
use(plugin: IPlugin): Promise<void>;
|
|
22
|
+
provider(provider: IProvider): void;
|
|
23
|
+
tool(tool: ITool | ToolFactory): void;
|
|
24
|
+
getTools(): ITool[];
|
|
25
|
+
getProviders(): IProvider[];
|
|
26
|
+
destroy(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export declare function createAgent(config: AstriveConfig): IAgent;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=astrive-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astrive-ai.d.ts","sourceRoot":"","sources":["../src/astrive-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,MAAM,EACN,SAAS,EACT,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,KAAK,EAEL,SAAS,EAKV,MAAM,mBAAmB,CAAC;AAa3B,KAAK,WAAW,GAAG,MAAM,KAAK,CAAC;AAE/B,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,aAAa;IAgDpB,IAAI;IAQJ,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAiK7E,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC;IA8C/F,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAazC,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAInC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI;IAQrC,QAAQ,IAAI,KAAK,EAAE;IAInB,YAAY,IAAI,SAAS,EAAE;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAWtC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAEzD"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { Logger } from "@astrive-ai/logger";
|
|
2
|
+
import { EventEmitter } from "@astrive-ai/events";
|
|
3
|
+
import { ProviderManager, GroqProvider } from "@astrive-ai/providers";
|
|
4
|
+
import { ToolRegistry, MiddlewarePipeline, ToolExecutor } from "@astrive-ai/core";
|
|
5
|
+
import { MemoryManager } from "@astrive-ai/memory";
|
|
6
|
+
import { LLMPlanner, SimplePlanner } from "@astrive-ai/planner";
|
|
7
|
+
import * as BuiltInTools from "@astrive-ai/tools";
|
|
8
|
+
import { ConversationManager } from "./conversation-manager.js";
|
|
9
|
+
import { PluginManager } from "./plugin-manager.js";
|
|
10
|
+
import { ReflectionEngine } from "./reflection.js";
|
|
11
|
+
export class AstriveAI {
|
|
12
|
+
config;
|
|
13
|
+
logger;
|
|
14
|
+
events;
|
|
15
|
+
providerManager;
|
|
16
|
+
toolRegistry;
|
|
17
|
+
memoryManager;
|
|
18
|
+
middlewarePipeline;
|
|
19
|
+
toolExecutor;
|
|
20
|
+
planner;
|
|
21
|
+
conversationManager;
|
|
22
|
+
pluginManager;
|
|
23
|
+
reflectionEngine;
|
|
24
|
+
initialized = false;
|
|
25
|
+
constructor(config) {
|
|
26
|
+
this.config = config;
|
|
27
|
+
this.logger = new Logger(config.logger || { level: 'info', prefix: 'Astrive', colors: true, timestamp: true });
|
|
28
|
+
this.events = new EventEmitter();
|
|
29
|
+
this.providerManager = new ProviderManager();
|
|
30
|
+
if (config.providers?.groq?.apiKey) {
|
|
31
|
+
const groq = new GroqProvider(this.logger, this.events);
|
|
32
|
+
this.providerManager.register(groq);
|
|
33
|
+
}
|
|
34
|
+
this.toolRegistry = new ToolRegistry(this.events);
|
|
35
|
+
const toolClasses = [
|
|
36
|
+
BuiltInTools.DownloaderTool,
|
|
37
|
+
BuiltInTools.VisionTool,
|
|
38
|
+
BuiltInTools.TextToImageTool,
|
|
39
|
+
BuiltInTools.RemoveBGTool,
|
|
40
|
+
BuiltInTools.UpscalerTool,
|
|
41
|
+
BuiltInTools.OCRTool,
|
|
42
|
+
BuiltInTools.FaceSwapTool,
|
|
43
|
+
BuiltInTools.Img2ImgTool,
|
|
44
|
+
BuiltInTools.TextToSpeechTool,
|
|
45
|
+
BuiltInTools.SpeechToTextTool,
|
|
46
|
+
BuiltInTools.WebSearchTool,
|
|
47
|
+
BuiltInTools.FilesystemTool,
|
|
48
|
+
BuiltInTools.TerminalTool,
|
|
49
|
+
BuiltInTools.GitTool,
|
|
50
|
+
];
|
|
51
|
+
for (const ToolClass of toolClasses) {
|
|
52
|
+
if (ToolClass) {
|
|
53
|
+
this.toolRegistry.register(new ToolClass());
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.memoryManager = new MemoryManager(config.memory || {}, this.logger, this.events);
|
|
57
|
+
this.middlewarePipeline = new MiddlewarePipeline();
|
|
58
|
+
this.toolExecutor = new ToolExecutor(this.toolRegistry, this.events, this.logger);
|
|
59
|
+
this.conversationManager = new ConversationManager();
|
|
60
|
+
this.pluginManager = new PluginManager();
|
|
61
|
+
this.reflectionEngine = new ReflectionEngine();
|
|
62
|
+
this.planner = new SimplePlanner();
|
|
63
|
+
this.initialized = true;
|
|
64
|
+
}
|
|
65
|
+
async init() {
|
|
66
|
+
await this.providerManager.initAll(this.config.providers || {});
|
|
67
|
+
const providers = this.providerManager.getAll();
|
|
68
|
+
if (providers.length > 0) {
|
|
69
|
+
this.planner = new LLMPlanner(providers[0], this.logger, this.events);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async chat(input, options) {
|
|
73
|
+
if (!this.initialized) {
|
|
74
|
+
throw new Error("Agent not initialized");
|
|
75
|
+
}
|
|
76
|
+
const startTime = Date.now();
|
|
77
|
+
const chatInput = typeof input === "string" ? { message: input, sessionId: options?.sessionId } : input;
|
|
78
|
+
const sessionId = chatInput.sessionId || "default";
|
|
79
|
+
let providerName = "groq";
|
|
80
|
+
if (options && 'provider' in options && options.provider) {
|
|
81
|
+
providerName = options.provider;
|
|
82
|
+
}
|
|
83
|
+
let provider;
|
|
84
|
+
try {
|
|
85
|
+
provider = this.providerManager.selectProvider(providerName, "chat");
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
const providers = this.providerManager.getAll();
|
|
89
|
+
if (providers.length > 0) {
|
|
90
|
+
provider = providers[0];
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
throw new Error(`Provider ${providerName} not found`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
this.conversationManager.addMessage(sessionId, { role: "user", content: chatInput.message });
|
|
97
|
+
let memoryContext = "";
|
|
98
|
+
if (this.config.memory?.enabled) {
|
|
99
|
+
memoryContext = await this.memoryManager.getRelevantContext(chatInput.message, 5);
|
|
100
|
+
}
|
|
101
|
+
const messages = this.conversationManager.buildMessages(sessionId, this.config.systemPrompt, memoryContext);
|
|
102
|
+
const tools = this.toolRegistry.getAll();
|
|
103
|
+
const toolDefinitions = this.toolRegistry.getDefinitions();
|
|
104
|
+
let response;
|
|
105
|
+
const planningEnabled = options?.planning !== false && tools.length > 0;
|
|
106
|
+
let stepsExecuted = 0;
|
|
107
|
+
const callProvider = async (msgs, toolsList) => {
|
|
108
|
+
return await provider.chat({
|
|
109
|
+
messages: msgs,
|
|
110
|
+
model: options?.model || "llama-3.3-70b-versatile",
|
|
111
|
+
temperature: options?.temperature || 0.7,
|
|
112
|
+
maxTokens: options?.maxTokens || 2048,
|
|
113
|
+
tools: toolsList && toolsList.length > 0 ? toolsList : undefined
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
if (planningEnabled) {
|
|
117
|
+
const initialResponse = await callProvider(messages, toolDefinitions);
|
|
118
|
+
stepsExecuted++;
|
|
119
|
+
if (initialResponse.toolCalls && initialResponse.toolCalls.length > 0) {
|
|
120
|
+
const toolResults = [];
|
|
121
|
+
const assistantMessage = {
|
|
122
|
+
role: "assistant",
|
|
123
|
+
content: initialResponse.content || "",
|
|
124
|
+
tool_calls: initialResponse.toolCalls
|
|
125
|
+
};
|
|
126
|
+
messages.push(assistantMessage);
|
|
127
|
+
this.conversationManager.addMessage(sessionId, assistantMessage);
|
|
128
|
+
for (const call of initialResponse.toolCalls) {
|
|
129
|
+
try {
|
|
130
|
+
const args = typeof call.arguments === 'string'
|
|
131
|
+
? JSON.parse(call.arguments)
|
|
132
|
+
: call.arguments;
|
|
133
|
+
const result = await this.toolExecutor.execute({
|
|
134
|
+
id: call.id,
|
|
135
|
+
name: call.name,
|
|
136
|
+
arguments: args
|
|
137
|
+
});
|
|
138
|
+
const finalToolResult = result.result || { success: false, data: result.error, contentType: 'text' };
|
|
139
|
+
toolResults.push(finalToolResult);
|
|
140
|
+
const toolMsg = {
|
|
141
|
+
role: "tool",
|
|
142
|
+
content: JSON.stringify(result.result || { error: result.error }),
|
|
143
|
+
tool_call_id: call.id
|
|
144
|
+
};
|
|
145
|
+
messages.push(toolMsg);
|
|
146
|
+
this.conversationManager.addMessage(sessionId, toolMsg);
|
|
147
|
+
stepsExecuted++;
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const toolMsg = {
|
|
151
|
+
role: "tool",
|
|
152
|
+
content: JSON.stringify({ error: error.message }),
|
|
153
|
+
tool_call_id: call.id
|
|
154
|
+
};
|
|
155
|
+
messages.push(toolMsg);
|
|
156
|
+
this.conversationManager.addMessage(sessionId, toolMsg);
|
|
157
|
+
stepsExecuted++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const finalResponse = await callProvider(messages);
|
|
161
|
+
stepsExecuted++;
|
|
162
|
+
const metadata = {
|
|
163
|
+
conversationId: sessionId,
|
|
164
|
+
model: finalResponse.model,
|
|
165
|
+
provider: provider.name,
|
|
166
|
+
executionTime: Date.now() - startTime,
|
|
167
|
+
stepsExecuted
|
|
168
|
+
};
|
|
169
|
+
response = {
|
|
170
|
+
content: finalResponse.content,
|
|
171
|
+
toolResults,
|
|
172
|
+
usage: finalResponse.usage,
|
|
173
|
+
metadata
|
|
174
|
+
};
|
|
175
|
+
this.conversationManager.addMessage(sessionId, { role: "assistant", content: response.content });
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const metadata = {
|
|
179
|
+
conversationId: sessionId,
|
|
180
|
+
model: initialResponse.model,
|
|
181
|
+
provider: provider.name,
|
|
182
|
+
executionTime: Date.now() - startTime,
|
|
183
|
+
stepsExecuted
|
|
184
|
+
};
|
|
185
|
+
response = {
|
|
186
|
+
content: initialResponse.content,
|
|
187
|
+
usage: initialResponse.usage,
|
|
188
|
+
metadata
|
|
189
|
+
};
|
|
190
|
+
this.conversationManager.addMessage(sessionId, { role: "assistant", content: response.content });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const rawResponse = await callProvider(messages);
|
|
195
|
+
stepsExecuted++;
|
|
196
|
+
const metadata = {
|
|
197
|
+
conversationId: sessionId,
|
|
198
|
+
model: rawResponse.model,
|
|
199
|
+
provider: provider.name,
|
|
200
|
+
executionTime: Date.now() - startTime,
|
|
201
|
+
stepsExecuted
|
|
202
|
+
};
|
|
203
|
+
response = {
|
|
204
|
+
content: rawResponse.content,
|
|
205
|
+
usage: rawResponse.usage,
|
|
206
|
+
metadata
|
|
207
|
+
};
|
|
208
|
+
this.conversationManager.addMessage(sessionId, { role: "assistant", content: response.content });
|
|
209
|
+
}
|
|
210
|
+
if (this.config.memory?.enabled) {
|
|
211
|
+
await this.memoryManager.extractAndSaveMemories([{ role: "user", content: chatInput.message }, { role: "assistant", content: response.content }]);
|
|
212
|
+
}
|
|
213
|
+
return response;
|
|
214
|
+
}
|
|
215
|
+
async *chatStream(input, options) {
|
|
216
|
+
if (!this.initialized) {
|
|
217
|
+
throw new Error("Agent not initialized");
|
|
218
|
+
}
|
|
219
|
+
const chatInput = typeof input === "string" ? { message: input, sessionId: options?.sessionId } : input;
|
|
220
|
+
const sessionId = chatInput.sessionId || "default";
|
|
221
|
+
let providerName = "groq";
|
|
222
|
+
if (options && 'provider' in options && options.provider) {
|
|
223
|
+
providerName = options.provider;
|
|
224
|
+
}
|
|
225
|
+
let provider;
|
|
226
|
+
try {
|
|
227
|
+
provider = this.providerManager.selectProvider(providerName, "chat");
|
|
228
|
+
}
|
|
229
|
+
catch (e) {
|
|
230
|
+
const providers = this.providerManager.getAll();
|
|
231
|
+
if (providers.length > 0)
|
|
232
|
+
provider = providers[0];
|
|
233
|
+
else
|
|
234
|
+
throw new Error(`Provider ${providerName} not found`);
|
|
235
|
+
}
|
|
236
|
+
this.conversationManager.addMessage(sessionId, { role: "user", content: chatInput.message });
|
|
237
|
+
const messages = this.conversationManager.buildMessages(sessionId, this.config.systemPrompt);
|
|
238
|
+
if (!provider.chatStream)
|
|
239
|
+
throw new Error("Provider does not support streaming");
|
|
240
|
+
const stream = await provider.chatStream({
|
|
241
|
+
messages,
|
|
242
|
+
model: options?.model || "llama-3.3-70b-versatile",
|
|
243
|
+
temperature: options?.temperature || 0.7,
|
|
244
|
+
maxTokens: options?.maxTokens || 2048
|
|
245
|
+
});
|
|
246
|
+
let fullContent = "";
|
|
247
|
+
for await (const chunk of stream) {
|
|
248
|
+
if (chunk.content) {
|
|
249
|
+
fullContent += chunk.content;
|
|
250
|
+
yield { type: "text", content: chunk.content };
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
this.conversationManager.addMessage(sessionId, { role: "assistant", content: fullContent });
|
|
254
|
+
yield { type: "done" };
|
|
255
|
+
}
|
|
256
|
+
async use(plugin) {
|
|
257
|
+
const context = {
|
|
258
|
+
agent: this,
|
|
259
|
+
config: this.config,
|
|
260
|
+
logger: this.logger,
|
|
261
|
+
events: this.events,
|
|
262
|
+
registerTool: (t) => this.toolRegistry.register(t),
|
|
263
|
+
registerProvider: (p) => this.providerManager.register(p),
|
|
264
|
+
registerMiddleware: (m) => this.middlewarePipeline.use(m)
|
|
265
|
+
};
|
|
266
|
+
await this.pluginManager.install(plugin, context);
|
|
267
|
+
}
|
|
268
|
+
provider(provider) {
|
|
269
|
+
this.providerManager.register(provider);
|
|
270
|
+
}
|
|
271
|
+
tool(tool) {
|
|
272
|
+
if (typeof tool === 'function') {
|
|
273
|
+
this.toolRegistry.register(tool());
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
this.toolRegistry.register(tool);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
getTools() {
|
|
280
|
+
return this.toolRegistry.getAll();
|
|
281
|
+
}
|
|
282
|
+
getProviders() {
|
|
283
|
+
return this.providerManager.getAll();
|
|
284
|
+
}
|
|
285
|
+
async destroy() {
|
|
286
|
+
await this.pluginManager.destroyAll();
|
|
287
|
+
for (const provider of this.providerManager.getAll()) {
|
|
288
|
+
if (typeof provider.destroy === 'function') {
|
|
289
|
+
await provider.destroy();
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
this.initialized = false;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
export function createAgent(config) {
|
|
296
|
+
return new AstriveAI(config);
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=astrive-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astrive-ai.js","sourceRoot":"","sources":["../src/astrive-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Message } from "@astrive-ai/types";
|
|
2
|
+
export interface ConversationState {
|
|
3
|
+
id: string;
|
|
4
|
+
messages: Message[];
|
|
5
|
+
systemPrompt?: string;
|
|
6
|
+
metadata?: Record<string, any>;
|
|
7
|
+
createdAt: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class ConversationManager {
|
|
10
|
+
private conversations;
|
|
11
|
+
getOrCreate(sessionId?: string, systemPrompt?: string): ConversationState;
|
|
12
|
+
addMessage(id: string, message: Message): void;
|
|
13
|
+
getMessages(id: string): Message[];
|
|
14
|
+
buildMessages(id: string, systemPrompt?: string, memoryContext?: string): Message[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=conversation-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAA6C;IAE3D,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAqBzE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO9C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,EAAE;IAKlC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;CAmB3F"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
export class ConversationManager {
|
|
3
|
+
conversations = new Map();
|
|
4
|
+
getOrCreate(sessionId, systemPrompt) {
|
|
5
|
+
const id = sessionId || randomUUID();
|
|
6
|
+
let state = this.conversations.get(id);
|
|
7
|
+
if (!state) {
|
|
8
|
+
state = {
|
|
9
|
+
id,
|
|
10
|
+
messages: [],
|
|
11
|
+
systemPrompt,
|
|
12
|
+
createdAt: Date.now(),
|
|
13
|
+
};
|
|
14
|
+
this.conversations.set(id, state);
|
|
15
|
+
}
|
|
16
|
+
if (systemPrompt && state.systemPrompt !== systemPrompt) {
|
|
17
|
+
state.systemPrompt = systemPrompt;
|
|
18
|
+
}
|
|
19
|
+
return state;
|
|
20
|
+
}
|
|
21
|
+
addMessage(id, message) {
|
|
22
|
+
const state = this.conversations.get(id);
|
|
23
|
+
if (state) {
|
|
24
|
+
state.messages.push(message);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
getMessages(id) {
|
|
28
|
+
const state = this.conversations.get(id);
|
|
29
|
+
return state ? [...state.messages] : [];
|
|
30
|
+
}
|
|
31
|
+
buildMessages(id, systemPrompt, memoryContext) {
|
|
32
|
+
const state = this.getOrCreate(id, systemPrompt);
|
|
33
|
+
const messages = [];
|
|
34
|
+
const finalSystemPrompt = memoryContext
|
|
35
|
+
? `${state.systemPrompt || "You are a helpful AI assistant."}\n\nContext:\n${memoryContext}`
|
|
36
|
+
: state.systemPrompt;
|
|
37
|
+
if (finalSystemPrompt) {
|
|
38
|
+
messages.push({ role: "system", content: finalSystemPrompt });
|
|
39
|
+
}
|
|
40
|
+
// Add all messages to the context. Tool messages and tool_calls are correctly maintained in the array.
|
|
41
|
+
for (const msg of state.messages) {
|
|
42
|
+
messages.push({ ...msg });
|
|
43
|
+
}
|
|
44
|
+
return messages;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=conversation-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,MAAM,OAAO,mBAAmB;IACtB,aAAa,GAAmC,IAAI,GAAG,EAAE,CAAC;IAE3D,WAAW,CAAC,SAAkB,EAAE,YAAqB;QAC1D,MAAM,EAAE,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,EAAE;gBACF,QAAQ,EAAE,EAAE;gBACZ,YAAY;gBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;YACxD,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,UAAU,CAAC,EAAU,EAAE,OAAgB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAEM,aAAa,CAAC,EAAU,EAAE,YAAqB,EAAE,aAAsB;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,MAAM,iBAAiB,GAAG,aAAa;YACrC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,iCAAiC,iBAAiB,aAAa,EAAE;YAC5F,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAEvB,IAAI,iBAAiB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,uGAAuG;QACvG,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IAgent, AgentResponse, ChatOptions } from '@astrive-ai/types';
|
|
2
|
+
export interface AgentTask {
|
|
3
|
+
description: string;
|
|
4
|
+
assignedRole: 'researcher' | 'coder' | 'creative' | 'reviewer' | 'validator' | 'custom';
|
|
5
|
+
dependencies?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare class MultiAgentOrchestrator {
|
|
8
|
+
private agents;
|
|
9
|
+
private plannerAgent;
|
|
10
|
+
constructor(plannerAgent: IAgent);
|
|
11
|
+
registerAgent(role: string, agent: IAgent): void;
|
|
12
|
+
executeTask(task: string, options?: ChatOptions): Promise<AgentResponse>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=multi-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-agent.d.ts","sourceRoot":"","sources":["../src/multi-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElF,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAAS;gBAEjB,YAAY,EAAE,MAAM;IAIzB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAsDtF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export class MultiAgentOrchestrator {
|
|
2
|
+
agents = new Map();
|
|
3
|
+
plannerAgent;
|
|
4
|
+
constructor(plannerAgent) {
|
|
5
|
+
this.plannerAgent = plannerAgent;
|
|
6
|
+
}
|
|
7
|
+
registerAgent(role, agent) {
|
|
8
|
+
this.agents.set(role, agent);
|
|
9
|
+
}
|
|
10
|
+
async executeTask(task, options) {
|
|
11
|
+
// 1. Planning phase
|
|
12
|
+
const planPrompt = `Break down the following task into sub-tasks assigned to different agent roles (researcher, coder, creative). Output JSON only.\nTask: ${task}`;
|
|
13
|
+
const planResponse = await this.plannerAgent.chat(planPrompt, { ...options, planning: false });
|
|
14
|
+
// In a real implementation, we would parse the JSON plan and execute the subtasks.
|
|
15
|
+
// For this prototype, we'll assume a linear flow if specific roles are registered.
|
|
16
|
+
let currentContext = `Original Task: ${task}\n\n`;
|
|
17
|
+
let finalResponse = null;
|
|
18
|
+
// 2. Execution phase - Researcher
|
|
19
|
+
if (this.agents.has('researcher')) {
|
|
20
|
+
const researcher = this.agents.get('researcher');
|
|
21
|
+
const res = await researcher.chat(`Research the following task and provide context:\n${currentContext}`, options);
|
|
22
|
+
currentContext += `Research Results:\n${res.content}\n\n`;
|
|
23
|
+
finalResponse = res;
|
|
24
|
+
}
|
|
25
|
+
// 3. Execution phase - Coder or Creative
|
|
26
|
+
if (this.agents.has('coder')) {
|
|
27
|
+
const coder = this.agents.get('coder');
|
|
28
|
+
const res = await coder.chat(`Based on the context, write the necessary code:\n${currentContext}`, options);
|
|
29
|
+
currentContext += `Code Results:\n${res.content}\n\n`;
|
|
30
|
+
finalResponse = res;
|
|
31
|
+
}
|
|
32
|
+
else if (this.agents.has('creative')) {
|
|
33
|
+
const creative = this.agents.get('creative');
|
|
34
|
+
const res = await creative.chat(`Based on the context, create the required content:\n${currentContext}`, options);
|
|
35
|
+
currentContext += `Creative Results:\n${res.content}\n\n`;
|
|
36
|
+
finalResponse = res;
|
|
37
|
+
}
|
|
38
|
+
// 4. Review phase
|
|
39
|
+
if (this.agents.has('reviewer')) {
|
|
40
|
+
const reviewer = this.agents.get('reviewer');
|
|
41
|
+
const res = await reviewer.chat(`Review the following results and suggest improvements:\n${currentContext}`, options);
|
|
42
|
+
currentContext += `Review Results:\n${res.content}\n\n`;
|
|
43
|
+
finalResponse = res;
|
|
44
|
+
}
|
|
45
|
+
// 5. Validation and Final Polish phase
|
|
46
|
+
if (this.agents.has('validator')) {
|
|
47
|
+
const validator = this.agents.get('validator');
|
|
48
|
+
const res = await validator.chat(`Validate the work and provide the final output to the user:\n${currentContext}`, options);
|
|
49
|
+
finalResponse = res;
|
|
50
|
+
}
|
|
51
|
+
if (!finalResponse) {
|
|
52
|
+
// Fallback if no specialized agents were registered
|
|
53
|
+
return await this.plannerAgent.chat(task, options);
|
|
54
|
+
}
|
|
55
|
+
return finalResponse;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=multi-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-agent.js","sourceRoot":"","sources":["../src/multi-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IPlugin, PluginContext } from "@astrive-ai/types";
|
|
2
|
+
export declare class PluginManager {
|
|
3
|
+
private plugins;
|
|
4
|
+
install(plugin: IPlugin, context: PluginContext): Promise<void>;
|
|
5
|
+
uninstall(name: string): Promise<void>;
|
|
6
|
+
destroyAll(): Promise<void>;
|
|
7
|
+
getAll(): IPlugin[];
|
|
8
|
+
has(name: string): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=plugin-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../src/plugin-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmC;IAErC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,MAAM,IAAI,OAAO,EAAE;IAInB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGlC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class PluginManager {
|
|
2
|
+
plugins = new Map();
|
|
3
|
+
async install(plugin, context) {
|
|
4
|
+
if (this.plugins.has(plugin.name)) {
|
|
5
|
+
throw new Error(`Plugin ${plugin.name} is already installed`);
|
|
6
|
+
}
|
|
7
|
+
await plugin.install(context);
|
|
8
|
+
this.plugins.set(plugin.name, plugin);
|
|
9
|
+
if (plugin.onInit) {
|
|
10
|
+
await plugin.onInit();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
async uninstall(name) {
|
|
14
|
+
const plugin = this.plugins.get(name);
|
|
15
|
+
if (plugin) {
|
|
16
|
+
if (plugin.onDestroy) {
|
|
17
|
+
await plugin.onDestroy();
|
|
18
|
+
}
|
|
19
|
+
this.plugins.delete(name);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async destroyAll() {
|
|
23
|
+
for (const name of Array.from(this.plugins.keys())) {
|
|
24
|
+
await this.uninstall(name);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
getAll() {
|
|
28
|
+
return Array.from(this.plugins.values());
|
|
29
|
+
}
|
|
30
|
+
has(name) {
|
|
31
|
+
return this.plugins.has(name);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=plugin-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../src/plugin-manager.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAChB,OAAO,GAAyB,IAAI,GAAG,EAAE,CAAC;IAE3C,KAAK,CAAC,OAAO,CAAC,MAAe,EAAE,OAAsB;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IProvider } from "@astrive-ai/types";
|
|
2
|
+
export interface ReflectionContext {
|
|
3
|
+
provider: IProvider;
|
|
4
|
+
originalInput: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ReviewResult {
|
|
7
|
+
hasIssues: boolean;
|
|
8
|
+
issues: string[];
|
|
9
|
+
suggestions: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare class ReflectionEngine {
|
|
12
|
+
reflect(response: string, context: ReflectionContext): Promise<string>;
|
|
13
|
+
private reviewResponse;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=reflection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../src/reflection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,gBAAgB;IACd,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;YAyBrE,cAAc;CA8B7B"}
|