@memberjunction/ai-agents 2.48.0 → 2.50.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/AgentRunner.d.ts +5 -0
- package/dist/AgentRunner.d.ts.map +1 -0
- package/dist/AgentRunner.js +36 -0
- package/dist/AgentRunner.js.map +1 -0
- package/dist/agent-types/LoopAgentType.d.ts +9 -0
- package/dist/agent-types/LoopAgentType.d.ts.map +1 -0
- package/dist/agent-types/LoopAgentType.js +134 -0
- package/dist/agent-types/LoopAgentType.js.map +1 -0
- package/dist/agent-types/index.d.ts +2 -0
- package/dist/agent-types/index.d.ts.map +1 -0
- package/dist/agent-types/index.js +20 -0
- package/dist/agent-types/index.js.map +1 -0
- package/dist/base-agent-type.d.ts +6 -0
- package/dist/base-agent-type.d.ts.map +1 -0
- package/dist/base-agent-type.js +7 -0
- package/dist/base-agent-type.js.map +1 -0
- package/dist/base-agent.d.ts +5 -55
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +120 -221
- package/dist/base-agent.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +9 -9
- package/dist/agent-factory.d.ts +0 -19
- package/dist/agent-factory.d.ts.map +0 -1
- package/dist/agent-factory.js +0 -137
- package/dist/agent-factory.js.map +0 -1
- package/dist/agent-runner.d.ts +0 -36
- package/dist/agent-runner.d.ts.map +0 -1
- package/dist/agent-runner.js +0 -509
- package/dist/agent-runner.js.map +0 -1
- package/dist/base-agent-original.d.ts +0 -205
- package/dist/base-agent-original.d.ts.map +0 -1
- package/dist/base-agent-original.js +0 -1243
- package/dist/base-agent-original.js.map +0 -1
- package/dist/conductor-agent.d.ts +0 -93
- package/dist/conductor-agent.d.ts.map +0 -1
- package/dist/conductor-agent.js +0 -319
- package/dist/conductor-agent.js.map +0 -1
package/dist/base-agent.js
CHANGED
|
@@ -1,257 +1,156 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const core_1 = require("@memberjunction/core");
|
|
5
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
3
|
+
exports.BaseAgent = void 0;
|
|
6
4
|
const ai_prompts_1 = require("@memberjunction/ai-prompts");
|
|
5
|
+
const base_agent_type_1 = require("./base-agent-type");
|
|
6
|
+
const global_1 = require("@memberjunction/global");
|
|
7
|
+
const aiengine_1 = require("@memberjunction/aiengine");
|
|
8
|
+
const actions_1 = require("@memberjunction/actions");
|
|
7
9
|
class BaseAgent {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
10
|
-
this._factory = factory;
|
|
11
|
-
this._promptRunner = promptRunner ? promptRunner : new ai_prompts_1.AIPromptRunner();
|
|
12
|
-
this._contextUser = contextUser;
|
|
13
|
-
this._metadata = new core_1.Metadata();
|
|
14
|
-
}
|
|
15
|
-
get agent() {
|
|
16
|
-
return this._agent;
|
|
17
|
-
}
|
|
18
|
-
get factory() {
|
|
19
|
-
return this._factory;
|
|
20
|
-
}
|
|
21
|
-
get promptRunner() {
|
|
22
|
-
return this._promptRunner;
|
|
23
|
-
}
|
|
24
|
-
get contextUser() {
|
|
25
|
-
return this._contextUser;
|
|
10
|
+
constructor() {
|
|
11
|
+
this._promptRunner = new ai_prompts_1.AIPromptRunner();
|
|
26
12
|
}
|
|
27
13
|
async Execute(params) {
|
|
28
|
-
const startTime = new Date();
|
|
29
14
|
try {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
15
|
+
await aiengine_1.AIEngine.Instance.Config(false, params.contextUser);
|
|
16
|
+
await actions_1.ActionEngineServer.Instance.Config(false, params.contextUser);
|
|
17
|
+
const engine = aiengine_1.AIEngine.Instance;
|
|
18
|
+
if (params.agent.Status !== 'Active') {
|
|
19
|
+
return {
|
|
20
|
+
nextStep: 'failed',
|
|
21
|
+
errorMessage: `Agent '${params.agent.Name}' is not active. Current status: ${params.agent.Status}`
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const agentType = engine.AgentTypes.find(at => at.ID === params.agent.TypeID);
|
|
25
|
+
if (!agentType) {
|
|
26
|
+
return {
|
|
27
|
+
nextStep: 'failed',
|
|
28
|
+
errorMessage: `Agent type not found for ID: ${params.agent.TypeID}`
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const systemPrompt = engine.Prompts.find(p => p.ID === agentType.SystemPromptID);
|
|
32
|
+
if (!systemPrompt) {
|
|
33
|
+
return {
|
|
34
|
+
nextStep: 'failed',
|
|
35
|
+
errorMessage: `System prompt not found for agent type: ${agentType.Name}`
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const agentPrompt = engine.AgentPrompts
|
|
39
|
+
.filter(ap => ap.AgentID === params.agent.ID && ap.Status === 'Active')
|
|
40
|
+
.sort((a, b) => a.ExecutionOrder - b.ExecutionOrder)[0];
|
|
41
|
+
if (!agentPrompt) {
|
|
42
|
+
return {
|
|
43
|
+
nextStep: 'failed',
|
|
44
|
+
errorMessage: `No prompts configured for agent: ${params.agent.Name}`
|
|
45
|
+
};
|
|
38
46
|
}
|
|
39
|
-
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
const childPrompt = engine.Prompts.find(p => p.ID === agentPrompt.PromptID);
|
|
48
|
+
if (!childPrompt) {
|
|
49
|
+
return {
|
|
50
|
+
nextStep: 'failed',
|
|
51
|
+
errorMessage: `Child prompt not found for ID: ${agentPrompt.PromptID}`
|
|
52
|
+
};
|
|
44
53
|
}
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
const contextData = await this.gatherContextData(params.agent, params.contextUser);
|
|
55
|
+
const promptParams = new ai_prompts_1.AIPromptParams();
|
|
56
|
+
promptParams.prompt = systemPrompt;
|
|
57
|
+
promptParams.data = contextData;
|
|
58
|
+
promptParams.contextUser = params.contextUser;
|
|
59
|
+
promptParams.conversationMessages = params.conversationMessages;
|
|
60
|
+
promptParams.templateMessageRole = 'system';
|
|
61
|
+
if (!agentType.AgentPromptPlaceholder) {
|
|
62
|
+
const errorMsg = `Agent type '${agentType.Name}' does not have AgentPromptPlaceholder configured. This field is required to properly inject agent prompt results into the system prompt template.`;
|
|
63
|
+
console.error(errorMsg);
|
|
64
|
+
return {
|
|
65
|
+
nextStep: 'failed',
|
|
66
|
+
errorMessage: errorMsg
|
|
67
|
+
};
|
|
47
68
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
promptParams.childPrompts = [
|
|
70
|
+
new ai_prompts_1.ChildPromptParam({
|
|
71
|
+
prompt: childPrompt,
|
|
72
|
+
data: contextData,
|
|
73
|
+
contextUser: params.contextUser,
|
|
74
|
+
conversationMessages: params.conversationMessages,
|
|
75
|
+
templateMessageRole: 'user'
|
|
76
|
+
}, agentType.AgentPromptPlaceholder)
|
|
77
|
+
];
|
|
78
|
+
const result = await this._promptRunner.ExecutePrompt(promptParams);
|
|
79
|
+
if (!result.success) {
|
|
80
|
+
return {
|
|
81
|
+
nextStep: 'failed',
|
|
82
|
+
errorMessage: result.errorMessage,
|
|
83
|
+
rawResult: result.rawResult
|
|
84
|
+
};
|
|
57
85
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
86
|
+
let agentTypeInstance;
|
|
87
|
+
try {
|
|
88
|
+
agentTypeInstance = await this.getAgentTypeInstance(agentType);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return {
|
|
92
|
+
nextStep: 'failed',
|
|
93
|
+
errorMessage: error.message
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const nextStep = await agentTypeInstance.DetermineNextStep(result);
|
|
69
97
|
return {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
executionTimeMS,
|
|
74
|
-
conversationMessages: promptResult.conversationMessages || conversationMessages,
|
|
75
|
-
metadata: {
|
|
76
|
-
agentName: this.agent.Name,
|
|
77
|
-
agentId: this.agent.ID,
|
|
78
|
-
promptExecutions: promptResult.promptExecutions || 1
|
|
79
|
-
}
|
|
98
|
+
nextStep: nextStep.step,
|
|
99
|
+
returnValue: nextStep.returnValue || result.result,
|
|
100
|
+
rawResult: result.rawResult
|
|
80
101
|
};
|
|
81
102
|
}
|
|
82
103
|
catch (error) {
|
|
83
|
-
(0, core_1.LogError)(`Error executing agent '${this.agent?.Name || 'Unknown'}': ${error.message}`);
|
|
84
|
-
const endTime = new Date();
|
|
85
104
|
return {
|
|
86
|
-
|
|
105
|
+
nextStep: 'failed',
|
|
87
106
|
errorMessage: error.message,
|
|
88
|
-
executionTimeMS: endTime.getTime() - startTime.getTime(),
|
|
89
|
-
cancelled: params.cancellationToken?.aborted || false
|
|
90
107
|
};
|
|
91
108
|
}
|
|
92
109
|
}
|
|
93
|
-
async
|
|
110
|
+
async gatherContextData(agent, contextUser) {
|
|
94
111
|
try {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
112
|
+
const engine = aiengine_1.AIEngine.Instance;
|
|
113
|
+
const subAgents = engine.Agents.filter(a => a.ParentID === agent.ID)
|
|
114
|
+
.sort((a, b) => a.ExecutionOrder - b.ExecutionOrder);
|
|
115
|
+
const agentActions = engine.AgentActions.filter(aa => aa.AgentID === agent.ID);
|
|
116
|
+
const actions = actions_1.ActionEngineServer.Instance.Actions.filter(a => agentActions.some(aa => aa.ActionID === a.ID));
|
|
117
|
+
const activeActions = actions.filter(a => a.Status === 'Active');
|
|
118
|
+
const contextData = {
|
|
119
|
+
agentName: agent.Name,
|
|
120
|
+
agentDescription: agent.Description,
|
|
121
|
+
subAgentCount: subAgents.length,
|
|
122
|
+
subAgentDetails: JSON.stringify(subAgents.map(sa => {
|
|
104
123
|
return {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
promptExecutions
|
|
124
|
+
ID: sa.ID,
|
|
125
|
+
Name: sa.Name,
|
|
126
|
+
Description: sa.Description
|
|
109
127
|
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
promptParams.data = params.data || {};
|
|
114
|
-
promptParams.conversationMessages = currentMessages;
|
|
115
|
-
promptParams.contextUser = params.contextUser;
|
|
116
|
-
const promptResult = await this._promptRunner.ExecutePrompt(promptParams);
|
|
117
|
-
promptExecutions++;
|
|
118
|
-
if (!promptResult.success) {
|
|
128
|
+
}), null, 2),
|
|
129
|
+
actionCount: actions.length,
|
|
130
|
+
actionDetails: JSON.stringify(activeActions.map(action => {
|
|
119
131
|
return {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
promptExecutions
|
|
132
|
+
ID: action.ID,
|
|
133
|
+
Name: action.Name,
|
|
134
|
+
Description: action.Description,
|
|
124
135
|
};
|
|
125
|
-
}
|
|
126
|
-
if (promptResult.rawResult) {
|
|
127
|
-
currentMessages.push({
|
|
128
|
-
role: 'assistant',
|
|
129
|
-
content: promptResult.rawResult
|
|
130
|
-
});
|
|
131
|
-
finalResult = promptResult.rawResult;
|
|
132
|
-
}
|
|
133
|
-
if (params.onStreaming && promptResult.rawResult) {
|
|
134
|
-
params.onStreaming({
|
|
135
|
-
content: promptResult.rawResult,
|
|
136
|
-
isComplete: false,
|
|
137
|
-
sourceId: this.agent.ID,
|
|
138
|
-
sourceName: this.agent.Name
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (params.onStreaming) {
|
|
143
|
-
params.onStreaming({
|
|
144
|
-
content: '',
|
|
145
|
-
isComplete: true,
|
|
146
|
-
sourceId: this.agent.ID,
|
|
147
|
-
sourceName: this.agent.Name
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
success: true,
|
|
152
|
-
result: finalResult,
|
|
153
|
-
conversationMessages: currentMessages,
|
|
154
|
-
promptExecutions
|
|
136
|
+
}), null, 2),
|
|
155
137
|
};
|
|
138
|
+
return contextData;
|
|
156
139
|
}
|
|
157
140
|
catch (error) {
|
|
158
|
-
|
|
159
|
-
return {
|
|
160
|
-
success: false,
|
|
161
|
-
errorMessage: error.message
|
|
162
|
-
};
|
|
141
|
+
throw new Error(`Error gathering context data: ${error.message}`);
|
|
163
142
|
}
|
|
164
143
|
}
|
|
165
|
-
async
|
|
166
|
-
|
|
167
|
-
await aiengine_1.AIEngine.Instance.Config(false, this.contextUser);
|
|
168
|
-
const agentPrompts = aiengine_1.AIEngine.Instance.AgentPrompts
|
|
169
|
-
.filter(ap => ap.AgentID === this.agent.ID && ap.Status === 'Active')
|
|
170
|
-
.sort((a, b) => (a.ExecutionOrder || 0) - (b.ExecutionOrder || 0));
|
|
171
|
-
const results = [];
|
|
172
|
-
for (const agentPrompt of agentPrompts) {
|
|
173
|
-
const prompt = aiengine_1.AIEngine.Instance.Prompts.find(p => p.ID === agentPrompt.PromptID);
|
|
174
|
-
if (prompt && prompt.Status === 'Active') {
|
|
175
|
-
results.push(prompt);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (results.length === 0) {
|
|
179
|
-
(0, core_1.LogStatus)(`No active prompts found for agent '${this.agent.Name}'`);
|
|
180
|
-
}
|
|
181
|
-
return results;
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
(0, core_1.LogError)(`Error loading agent prompts for '${this.agent.Name}': ${error.message}`);
|
|
185
|
-
return [];
|
|
186
|
-
}
|
|
144
|
+
async getAgentTypeInstance(agentType) {
|
|
145
|
+
return this.getAgentInstanceWithDriverClass(agentType.DriverClass || agentType.Name);
|
|
187
146
|
}
|
|
188
|
-
async
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
async compressContext(conversationMessages, params) {
|
|
193
|
-
try {
|
|
194
|
-
if (!this.agent.ContextCompressionPromptID) {
|
|
195
|
-
(0, core_1.LogStatus)(`Context compression enabled but no compression prompt configured for agent '${this.agent.Name}'`);
|
|
196
|
-
return conversationMessages;
|
|
197
|
-
}
|
|
198
|
-
const retentionCount = this.agent.ContextCompressionMessageRetentionCount || 5;
|
|
199
|
-
const messagesToCompress = conversationMessages.slice(0, -retentionCount);
|
|
200
|
-
const messagesToKeep = conversationMessages.slice(-retentionCount);
|
|
201
|
-
if (messagesToCompress.length === 0) {
|
|
202
|
-
return conversationMessages;
|
|
203
|
-
}
|
|
204
|
-
const compressionPrompt = aiengine_1.AIEngine.Instance.Prompts.find(p => p.ID === this.agent.ContextCompressionPromptID);
|
|
205
|
-
if (!compressionPrompt) {
|
|
206
|
-
(0, core_1.LogError)(`Compression prompt not found: ${this.agent.ContextCompressionPromptID}`);
|
|
207
|
-
return conversationMessages;
|
|
208
|
-
}
|
|
209
|
-
const compressionParams = new ai_prompts_1.AIPromptParams();
|
|
210
|
-
compressionParams.prompt = compressionPrompt;
|
|
211
|
-
compressionParams.data = {
|
|
212
|
-
messages: messagesToCompress,
|
|
213
|
-
messageCount: messagesToCompress.length,
|
|
214
|
-
...(params.data || {})
|
|
215
|
-
};
|
|
216
|
-
compressionParams.contextUser = params.contextUser;
|
|
217
|
-
const compressionResult = await this.promptRunner.ExecutePrompt(compressionParams);
|
|
218
|
-
if (compressionResult.success && compressionResult.rawResult) {
|
|
219
|
-
const summaryMessage = {
|
|
220
|
-
role: 'system',
|
|
221
|
-
content: `[Conversation Summary] ${compressionResult.rawResult}`
|
|
222
|
-
};
|
|
223
|
-
(0, core_1.LogStatus)(`Compressed ${messagesToCompress.length} messages into summary for agent '${this.agent.Name}'`);
|
|
224
|
-
return [summaryMessage, ...messagesToKeep];
|
|
225
|
-
}
|
|
226
|
-
return conversationMessages;
|
|
227
|
-
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
(0, core_1.LogError)(`Error compressing context for agent '${this.agent.Name}': ${error.message}`);
|
|
230
|
-
return conversationMessages;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
sendProgress(callback, progress) {
|
|
234
|
-
if (callback) {
|
|
235
|
-
try {
|
|
236
|
-
callback(progress);
|
|
237
|
-
}
|
|
238
|
-
catch (error) {
|
|
239
|
-
(0, core_1.LogError)(`Error in progress callback: ${error.message}`);
|
|
240
|
-
}
|
|
147
|
+
async getAgentInstanceWithDriverClass(driverClass) {
|
|
148
|
+
const instance = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(base_agent_type_1.BaseAgentType, driverClass);
|
|
149
|
+
if (!instance) {
|
|
150
|
+
throw new Error(`No implementation found for agent with DriverClass '${driverClass}'. Please ensure the class is registered with the ClassFactory.`);
|
|
241
151
|
}
|
|
242
|
-
|
|
243
|
-
createCancelledResult(startTime) {
|
|
244
|
-
const endTime = new Date();
|
|
245
|
-
return {
|
|
246
|
-
success: false,
|
|
247
|
-
cancelled: true,
|
|
248
|
-
errorMessage: 'Agent execution was cancelled',
|
|
249
|
-
executionTimeMS: endTime.getTime() - startTime.getTime()
|
|
250
|
-
};
|
|
152
|
+
return instance;
|
|
251
153
|
}
|
|
252
154
|
}
|
|
253
155
|
exports.BaseAgent = BaseAgent;
|
|
254
|
-
function LoadBaseAgent() {
|
|
255
|
-
}
|
|
256
|
-
exports.LoadBaseAgent = LoadBaseAgent;
|
|
257
156
|
//# sourceMappingURL=base-agent.js.map
|
package/dist/base-agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../src/base-agent.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../src/base-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './base-agent-type';
|
|
1
3
|
export * from './base-agent';
|
|
2
|
-
export * from './agent-
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './agent-runner';
|
|
4
|
+
export * from './agent-types';
|
|
5
|
+
export * from './AgentRunner';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./base-agent-type"), exports);
|
|
17
19
|
__exportStar(require("./base-agent"), exports);
|
|
18
|
-
__exportStar(require("./agent-
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./agent-runner"), exports);
|
|
20
|
+
__exportStar(require("./agent-types"), exports);
|
|
21
|
+
__exportStar(require("./AgentRunner"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAWA,0CAAwB;AACxB,oDAAkC;AAClC,+CAA6B;AAC7B,gDAA8B;AAC9B,gDAA8B"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChatMessage } from '@memberjunction/ai';
|
|
2
|
+
import { AIAgentEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { UserInfo } from '@memberjunction/core';
|
|
4
|
+
export type ExecuteAgentParams = {
|
|
5
|
+
agent: AIAgentEntity;
|
|
6
|
+
conversationMessages: ChatMessage[];
|
|
7
|
+
contextUser?: UserInfo;
|
|
8
|
+
};
|
|
9
|
+
export type ExecuteAgentResult = {
|
|
10
|
+
nextStep: BaseAgentNextStep['step'];
|
|
11
|
+
returnValue?: any;
|
|
12
|
+
rawResult?: string;
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
};
|
|
15
|
+
export type AgentContextData = {
|
|
16
|
+
agentName: string | null;
|
|
17
|
+
agentDescription: string | null;
|
|
18
|
+
subAgentCount: number;
|
|
19
|
+
subAgentDetails: string;
|
|
20
|
+
actionCount: number;
|
|
21
|
+
actionDetails: string;
|
|
22
|
+
};
|
|
23
|
+
export type BaseAgentNextStep = {
|
|
24
|
+
step: 'success' | 'failed' | 'retry' | 'sub-agent' | 'action';
|
|
25
|
+
returnValue?: any;
|
|
26
|
+
errorMessage?: string;
|
|
27
|
+
retryReason?: string;
|
|
28
|
+
retryInstructions?: string;
|
|
29
|
+
subAgentName?: string;
|
|
30
|
+
subAgentInstructions?: Record<string, unknown>;
|
|
31
|
+
actionName?: string;
|
|
32
|
+
actionParameters?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUhD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,oBAAoB,EAAE,WAAW,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,QAAQ,CAAC;CAC1B,CAAA;AAWD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAkBD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAA;AAyBD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9D,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C,CAAA"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai-agents",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.50.0",
|
|
4
4
|
"description": "MemberJunction: AI Agent Execution and Management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"author": "MemberJunction.com",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@memberjunction/core": "2.
|
|
19
|
-
"@memberjunction/global": "2.
|
|
20
|
-
"@memberjunction/core-entities": "2.
|
|
21
|
-
"@memberjunction/ai": "2.
|
|
22
|
-
"@memberjunction/aiengine": "2.
|
|
23
|
-
"@memberjunction/ai-prompts": "2.
|
|
24
|
-
"@memberjunction/actions": "2.
|
|
25
|
-
"@memberjunction/actions-base": "2.
|
|
18
|
+
"@memberjunction/core": "2.50.0",
|
|
19
|
+
"@memberjunction/global": "2.50.0",
|
|
20
|
+
"@memberjunction/core-entities": "2.50.0",
|
|
21
|
+
"@memberjunction/ai": "2.50.0",
|
|
22
|
+
"@memberjunction/aiengine": "2.50.0",
|
|
23
|
+
"@memberjunction/ai-prompts": "2.50.0",
|
|
24
|
+
"@memberjunction/actions": "2.50.0",
|
|
25
|
+
"@memberjunction/actions-base": "2.50.0",
|
|
26
26
|
"dotenv": "^16.4.1",
|
|
27
27
|
"rxjs": "^7.8.1"
|
|
28
28
|
},
|
package/dist/agent-factory.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { UserInfo } from '@memberjunction/core';
|
|
2
|
-
import { AIAgentEntityExtended } from '@memberjunction/core-entities';
|
|
3
|
-
import { BaseAgent, IAgentFactory } from './base-agent';
|
|
4
|
-
import { ConductorAgent } from './conductor-agent';
|
|
5
|
-
import { AgentRunner } from './agent-runner';
|
|
6
|
-
export declare class AgentFactory implements IAgentFactory {
|
|
7
|
-
private _metadata;
|
|
8
|
-
constructor();
|
|
9
|
-
CreateAgent(agentName: string, key?: string, contextUser?: UserInfo, ...additionalParams: any[]): Promise<BaseAgent | null>;
|
|
10
|
-
CreateAgentFromEntity(agentEntity: AIAgentEntityExtended, key?: string, ...additionalParams: any[]): BaseAgent;
|
|
11
|
-
GetAvailableAgents(contextUser?: UserInfo): Promise<AIAgentEntityExtended[]>;
|
|
12
|
-
AgentExists(agentName: string, contextUser?: UserInfo): Promise<boolean>;
|
|
13
|
-
GetAgentEntity(agentName: string, contextUser: UserInfo): Promise<AIAgentEntityExtended | null>;
|
|
14
|
-
GetConductorAgent(contextUser: UserInfo): Promise<ConductorAgent>;
|
|
15
|
-
GetAgentRunner(contextUser: UserInfo, key?: string): Promise<AgentRunner>;
|
|
16
|
-
}
|
|
17
|
-
export declare function GetAgentFactory(): AgentFactory;
|
|
18
|
-
export declare function LoadAgentFactory(): void;
|
|
19
|
-
//# sourceMappingURL=agent-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-factory.d.ts","sourceRoot":"","sources":["../src/agent-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,cAAc,EAAwB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA0B7C,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,SAAS,CAAW;;IAoBf,WAAW,CACtB,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,QAAQ,EACtB,GAAG,gBAAgB,EAAE,GAAG,EAAE,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAiDrB,qBAAqB,CAC1B,WAAW,EAAE,qBAAqB,EAClC,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,gBAAgB,EAAE,GAAG,EAAE,GACzB,SAAS;IAgCC,kBAAkB,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkB5E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBxE,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,GACpB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAqB3B,iBAAiB,CAC5B,WAAW,EAAE,QAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;IAwCb,cAAc,CACzB,WAAW,EAAE,QAAQ,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC;CAqBxB;AASD,wBAAgB,eAAe,IAAI,YAAY,CAO9C;AAED,wBAAgB,gBAAgB,SAE/B"}
|