@mate-academy/llm-gateway 7.2.4 → 7.3.0-canary.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/LLMService.constants.d.ts +3788 -2138
- package/dist/LLMService.typedefs.d.ts +14 -0
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +2 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +55 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.d.ts +2 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +51 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -1
- package/dist/providers/LLMAPI/LLMAPI.constants.d.ts +6987 -4512
- package/dist/providers/LLMAPI/LLMAPI.constants.js +590 -28
- package/dist/providers/LLMAPI/LLMAPI.constants.js.map +1 -1
- package/dist/providers/LLMAPI/LLMAPI.typedefs.d.ts +36 -3
- package/dist/providers/LLMAPI/LLMAPI.typedefs.js +45 -2
- package/dist/providers/LLMAPI/LLMAPI.typedefs.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.d.ts +2 -1
- package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js +50 -0
- package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js.map +1 -1
- package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.d.ts +2 -1
- package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +51 -0
- package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -1
- package/dist/services/LLMCompletionService.abstract.d.ts +2 -1
- package/dist/services/LLMCompletionService.abstract.js.map +1 -1
- package/dist/services/LLMTextToSpeechService.abstract.d.ts +2 -1
- package/dist/services/LLMTextToSpeechService.abstract.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent/LLMAgent.constants.d.ts +0 -1
- package/dist/agent/LLMAgent.constants.js +0 -5
- package/dist/agent/LLMAgent.constants.js.map +0 -1
- package/dist/agent/LLMAgent.d.ts +0 -9
- package/dist/agent/LLMAgent.js +0 -28
- package/dist/agent/LLMAgent.js.map +0 -1
- package/dist/agent/LLMAgent.typedefs.d.ts +0 -44
- package/dist/agent/LLMAgent.typedefs.js +0 -3
- package/dist/agent/LLMAgent.typedefs.js.map +0 -1
- package/dist/agent/LLMAgentBase.d.ts +0 -42
- package/dist/agent/LLMAgentBase.js +0 -147
- package/dist/agent/LLMAgentBase.js.map +0 -1
- package/dist/agent/LLMAgentOrchestrator.d.ts +0 -11
- package/dist/agent/LLMAgentOrchestrator.js +0 -86
- package/dist/agent/LLMAgentOrchestrator.js.map +0 -1
- package/dist/agent/LLMAgentToolAdapter.d.ts +0 -6
- package/dist/agent/LLMAgentToolAdapter.js +0 -25
- package/dist/agent/LLMAgentToolAdapter.js.map +0 -1
- package/dist/agent/index.d.ts +0 -6
- package/dist/agent/index.js +0 -14
- package/dist/agent/index.js.map +0 -1
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LLMAgentBase = void 0;
|
|
4
|
-
const LLMService_typedefs_1 = require("../LLMService.typedefs");
|
|
5
|
-
const LLMService_factory_1 = require("../LLMService.factory");
|
|
6
|
-
const LLMAgentToolAdapter_1 = require("./LLMAgentToolAdapter");
|
|
7
|
-
class LLMAgentBase {
|
|
8
|
-
name;
|
|
9
|
-
description;
|
|
10
|
-
instructions;
|
|
11
|
-
model;
|
|
12
|
-
tools;
|
|
13
|
-
subagents;
|
|
14
|
-
logger;
|
|
15
|
-
providedService;
|
|
16
|
-
provider;
|
|
17
|
-
providerOptions;
|
|
18
|
-
reporter;
|
|
19
|
-
createdService;
|
|
20
|
-
constructor(config) {
|
|
21
|
-
this.name = config.name;
|
|
22
|
-
this.description = config.description;
|
|
23
|
-
this.instructions = config.instructions;
|
|
24
|
-
this.model = config.model;
|
|
25
|
-
this.tools = config.tools ?? [];
|
|
26
|
-
this.subagents = config.subagents ?? [];
|
|
27
|
-
this.logger = config.logger;
|
|
28
|
-
if (config.service) {
|
|
29
|
-
this.providedService = config.service;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.provider = config.provider;
|
|
33
|
-
this.providerOptions = config.providerOptions;
|
|
34
|
-
this.reporter = config.reporter;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
getService() {
|
|
38
|
-
if (this.providedService) {
|
|
39
|
-
return this.providedService;
|
|
40
|
-
}
|
|
41
|
-
if (!this.createdService) {
|
|
42
|
-
this.createdService = LLMService_factory_1.LLMServiceFactory.getAssistanceService({
|
|
43
|
-
provider: this.provider,
|
|
44
|
-
options: this.providerOptions,
|
|
45
|
-
logger: this.logger,
|
|
46
|
-
reporter: this.reporter,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return this.createdService;
|
|
50
|
-
}
|
|
51
|
-
async runWithChat(runOptions, contextLogger, callback) {
|
|
52
|
-
const service = this.getService();
|
|
53
|
-
const createChatOptions = this.buildCreateChatOptions(runOptions);
|
|
54
|
-
const chatResult = await service.createChat(createChatOptions);
|
|
55
|
-
if ('error' in chatResult) {
|
|
56
|
-
throw chatResult.error;
|
|
57
|
-
}
|
|
58
|
-
const { chatId } = chatResult;
|
|
59
|
-
try {
|
|
60
|
-
return await callback(service, chatId);
|
|
61
|
-
}
|
|
62
|
-
finally {
|
|
63
|
-
await service.deleteChat(chatId).catch((deleteError) => {
|
|
64
|
-
contextLogger?.warn('Failed to delete chat', {
|
|
65
|
-
chatId,
|
|
66
|
-
error: String(deleteError),
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
buildTools(runOptions, contextLogger) {
|
|
72
|
-
const subagentTools = this.subagents.map((subagent) => LLMAgentToolAdapter_1.LLMAgentToolAdapter.agentAsTool(subagent, runOptions));
|
|
73
|
-
const explicitTools = this.tools.map((tool) => this.wrapToolWithLogging(tool, contextLogger));
|
|
74
|
-
const wrappedSubagentTools = subagentTools.map((tool) => this.wrapToolWithLogging(tool, contextLogger));
|
|
75
|
-
return [...explicitTools, ...wrappedSubagentTools];
|
|
76
|
-
}
|
|
77
|
-
buildAssistOptions(chatId, prompt, tools, runOptions, maxToolIterations) {
|
|
78
|
-
const baseOptions = {
|
|
79
|
-
chatId,
|
|
80
|
-
model: this.model,
|
|
81
|
-
message: {
|
|
82
|
-
role: LLMService_typedefs_1.LLMRoles.User,
|
|
83
|
-
content: [{
|
|
84
|
-
type: LLMService_typedefs_1.LLMMessageContentType.TEXT,
|
|
85
|
-
text: prompt,
|
|
86
|
-
}],
|
|
87
|
-
},
|
|
88
|
-
abortSignal: runOptions?.abortSignal,
|
|
89
|
-
};
|
|
90
|
-
if (maxToolIterations !== undefined) {
|
|
91
|
-
baseOptions.maxToolIterations = maxToolIterations;
|
|
92
|
-
}
|
|
93
|
-
if (tools.length > 0) {
|
|
94
|
-
baseOptions.tools = tools;
|
|
95
|
-
}
|
|
96
|
-
if (runOptions?.reporterContext !== undefined) {
|
|
97
|
-
baseOptions.reporterContext = runOptions.reporterContext;
|
|
98
|
-
}
|
|
99
|
-
return baseOptions;
|
|
100
|
-
}
|
|
101
|
-
buildCreateChatOptions(runOptions) {
|
|
102
|
-
const baseOptions = {
|
|
103
|
-
model: this.model,
|
|
104
|
-
instructions: this.instructions,
|
|
105
|
-
abortSignal: runOptions?.abortSignal,
|
|
106
|
-
};
|
|
107
|
-
if (runOptions?.reporterContext !== undefined) {
|
|
108
|
-
baseOptions.reporterContext = runOptions.reporterContext;
|
|
109
|
-
}
|
|
110
|
-
return baseOptions;
|
|
111
|
-
}
|
|
112
|
-
wrapToolWithLogging(tool, contextLogger) {
|
|
113
|
-
if (!contextLogger) {
|
|
114
|
-
return tool;
|
|
115
|
-
}
|
|
116
|
-
return {
|
|
117
|
-
...tool,
|
|
118
|
-
execute: async (args) => {
|
|
119
|
-
const startTime = Date.now();
|
|
120
|
-
contextLogger.info('Tool call started', {
|
|
121
|
-
tool: tool.name,
|
|
122
|
-
args,
|
|
123
|
-
});
|
|
124
|
-
try {
|
|
125
|
-
const result = await tool.execute(args);
|
|
126
|
-
const duration = Date.now() - startTime;
|
|
127
|
-
contextLogger.info('Tool call completed', {
|
|
128
|
-
tool: tool.name,
|
|
129
|
-
duration,
|
|
130
|
-
});
|
|
131
|
-
return result;
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
const duration = Date.now() - startTime;
|
|
135
|
-
contextLogger.error('Tool call failed', {
|
|
136
|
-
tool: tool.name,
|
|
137
|
-
duration,
|
|
138
|
-
error: String(error),
|
|
139
|
-
});
|
|
140
|
-
throw error;
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
exports.LLMAgentBase = LLMAgentBase;
|
|
147
|
-
//# sourceMappingURL=LLMAgentBase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAgentBase.js","sourceRoot":"","sources":["../../src/agent/LLMAgentBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { LLMProviders } from '../LLMService.typedefs';
|
|
2
|
-
import type { LLMReporterInterface } from '../utilities/reporter';
|
|
3
|
-
import { LLMAgentBase } from './LLMAgentBase';
|
|
4
|
-
import type { LLMAgentOrchestratorConfig, LLMAgentRunOptions, LLMAgentResult } from './LLMAgent.typedefs';
|
|
5
|
-
export declare class LLMAgentOrchestrator<Provider extends LLMProviders = LLMProviders, Reporter extends LLMReporterInterface<any> | undefined = LLMReporterInterface<any> | undefined> extends LLMAgentBase<Provider, Reporter> {
|
|
6
|
-
private readonly agents;
|
|
7
|
-
constructor(config: LLMAgentOrchestratorConfig<Provider, Reporter>);
|
|
8
|
-
run(prompt: string, options?: LLMAgentRunOptions<Reporter>): Promise<LLMAgentResult>;
|
|
9
|
-
private selectAgent;
|
|
10
|
-
private buildUserMessage;
|
|
11
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LLMAgentOrchestrator = void 0;
|
|
4
|
-
const LLMService_typedefs_1 = require("../LLMService.typedefs");
|
|
5
|
-
const schema_1 = require("../utilities/schema");
|
|
6
|
-
const promptBuilder_1 = require("../utilities/promptBuilder");
|
|
7
|
-
const LLMAgentBase_1 = require("./LLMAgentBase");
|
|
8
|
-
const selectionPrompt = (0, promptBuilder_1.createPromptTemplate)(`Select the most appropriate agent to handle the user request.
|
|
9
|
-
|
|
10
|
-
Available agents:
|
|
11
|
-
{{agentDescriptions}}
|
|
12
|
-
|
|
13
|
-
Respond with the agent name that best matches the request.`);
|
|
14
|
-
class LLMAgentOrchestrator extends LLMAgentBase_1.LLMAgentBase {
|
|
15
|
-
agents;
|
|
16
|
-
constructor(config) {
|
|
17
|
-
super(config);
|
|
18
|
-
this.agents = new Map(config.agents.map((agent) => [agent.name, agent]));
|
|
19
|
-
}
|
|
20
|
-
async run(prompt, options) {
|
|
21
|
-
const orchestratorLogger = this.logger?.child(`Orchestrator:${this.name}`);
|
|
22
|
-
orchestratorLogger?.info('Starting orchestrator run', { prompt });
|
|
23
|
-
const selectedAgent = await this.runWithChat(options, orchestratorLogger, async (service, chatId) => this.selectAgent(service, chatId, prompt, options, orchestratorLogger));
|
|
24
|
-
orchestratorLogger?.info('Delegating to agent', {
|
|
25
|
-
agent: selectedAgent.name,
|
|
26
|
-
});
|
|
27
|
-
return selectedAgent.run(prompt, options);
|
|
28
|
-
}
|
|
29
|
-
async selectAgent(service, chatId, prompt, runOptions, orchestratorLogger) {
|
|
30
|
-
const agentNames = [...this.agents.keys()];
|
|
31
|
-
const selectionSchema = schema_1.LLMSchema.object({
|
|
32
|
-
agent: schema_1.LLMSchema.enum(agentNames)
|
|
33
|
-
.describe('The name of the agent to route this task to'),
|
|
34
|
-
});
|
|
35
|
-
const allTools = this.buildTools(runOptions, orchestratorLogger);
|
|
36
|
-
const userMessage = this.buildUserMessage(prompt);
|
|
37
|
-
const baseOptions = {
|
|
38
|
-
chatId,
|
|
39
|
-
model: this.model,
|
|
40
|
-
message: {
|
|
41
|
-
role: LLMService_typedefs_1.LLMRoles.User,
|
|
42
|
-
content: [{
|
|
43
|
-
type: LLMService_typedefs_1.LLMMessageContentType.TEXT,
|
|
44
|
-
text: userMessage,
|
|
45
|
-
}],
|
|
46
|
-
},
|
|
47
|
-
schema: selectionSchema,
|
|
48
|
-
abortSignal: runOptions?.abortSignal,
|
|
49
|
-
};
|
|
50
|
-
if (allTools.length > 0) {
|
|
51
|
-
baseOptions.tools = allTools;
|
|
52
|
-
}
|
|
53
|
-
if (runOptions?.reporterContext !== undefined) {
|
|
54
|
-
baseOptions.reporterContext = runOptions.reporterContext;
|
|
55
|
-
}
|
|
56
|
-
const result = await service.assistInChat(baseOptions);
|
|
57
|
-
if ('error' in result) {
|
|
58
|
-
throw result.error;
|
|
59
|
-
}
|
|
60
|
-
if (!result.data) {
|
|
61
|
-
throw new Error(`Orchestrator "${this.name}" failed to select an agent`
|
|
62
|
-
+ (result.parseError ? `: ${result.parseError}` : ''));
|
|
63
|
-
}
|
|
64
|
-
const selectedAgent = this.agents.get(result.data.agent);
|
|
65
|
-
if (!selectedAgent) {
|
|
66
|
-
throw new Error(`Orchestrator "${this.name}" selected unknown agent`
|
|
67
|
-
+ ` "${result.data.agent}"`);
|
|
68
|
-
}
|
|
69
|
-
orchestratorLogger?.info('Agent selected', {
|
|
70
|
-
agent: result.data.agent,
|
|
71
|
-
});
|
|
72
|
-
return selectedAgent;
|
|
73
|
-
}
|
|
74
|
-
buildUserMessage(prompt) {
|
|
75
|
-
const agentDescriptions = [...this.agents.entries()]
|
|
76
|
-
.map(([name, agent]) => {
|
|
77
|
-
const description = agent.description ?? 'No description';
|
|
78
|
-
return `- ${name}: ${description}`;
|
|
79
|
-
})
|
|
80
|
-
.join('\n');
|
|
81
|
-
return selectionPrompt({ agentDescriptions })
|
|
82
|
-
+ `\n\nUser request: ${prompt}`;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.LLMAgentOrchestrator = LLMAgentOrchestrator;
|
|
86
|
-
//# sourceMappingURL=LLMAgentOrchestrator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAgentOrchestrator.js","sourceRoot":"","sources":["../../src/agent/LLMAgentOrchestrator.ts"],"names":[],"mappings":";;;AACA,+DAAwE;AAIxE,+CAA+C;AAC/C,6DAAiE;AACjE,iDAA8C;AAQ9C,MAAM,eAAe,GAAG,IAAA,oCAAoB,EAC1C;;;;;2DAKyD,CAC1D,CAAC;AAEF,MAAa,oBAIX,SAAQ,2BAAgC;IACvB,MAAM,CAAsC;IAE7D,YACE,MAAsD;QAEtD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CACf,CAAC,KAA6B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CACvD,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAsC;QAEtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAC3C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAC5B,CAAC;QAEF,kBAAkB,EAAE,IAAI,CACtB,2BAA2B,EAC3B,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAC1C,OAAO,EACP,kBAAkB,EAClB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CACzC,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CACF,CAAC;QAEF,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAC9C,KAAK,EAAE,aAAa,CAAC,IAAI;SAC1B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAAiD,EACjD,MAAc,EACd,MAAc,EACd,UAAyC,EACzC,kBAAuC;QAEvC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAGxC,CAAC;QAEF,MAAM,eAAe,GAAG,kBAAS,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC9B,QAAQ,CACP,6CAA6C,CAC9C;SACJ,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAC9B,UAAU,EACV,kBAAkB,CACnB,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,WAAW,GAAwB;YACvC,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,8BAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,2CAAqB,CAAC,IAAI;wBAChC,IAAI,EAAE,WAAW;qBAClB,CAAC;aACH;YACD,MAAM,EAAE,eAAe;YACvB,WAAW,EAAE,UAAU,EAAE,WAAW;SACrC,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC/B,CAAC;QAED,IAAI,UAAU,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;YAC9C,WAAW,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CACvC,WAEyC,CAC1C,CAAC;QAEF,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,IAAI,6BAA6B;kBACrD,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,IAAI,0BAA0B;kBAClD,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAC5B,CAAC;QACJ,CAAC;QAED,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YACrB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,gBAAgB,CAAC;YAE1D,OAAO,KAAK,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;cACzC,qBAAqB,MAAM,EAAE,CAAC;IACpC,CAAC;CACF;AAhJD,oDAgJC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { LLMToolDefinition } from '../LLMService.typedefs';
|
|
2
|
-
import type { LLMAgentLike, LLMAgentRunOptions } from './LLMAgent.typedefs';
|
|
3
|
-
import type { LLMReporterInterface } from '../utilities/reporter';
|
|
4
|
-
export declare class LLMAgentToolAdapter {
|
|
5
|
-
static agentAsTool<Reporter extends LLMReporterInterface<any> | undefined = LLMReporterInterface<any> | undefined>(agent: LLMAgentLike<Reporter>, runOptions?: LLMAgentRunOptions<Reporter>): LLMToolDefinition;
|
|
6
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LLMAgentToolAdapter = void 0;
|
|
4
|
-
const tools_1 = require("../utilities/tools");
|
|
5
|
-
const schema_1 = require("../utilities/schema");
|
|
6
|
-
class LLMAgentToolAdapter {
|
|
7
|
-
static agentAsTool(agent, runOptions) {
|
|
8
|
-
const sanitizedName = agent.name.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
9
|
-
return tools_1.LLMTool.create({
|
|
10
|
-
name: sanitizedName,
|
|
11
|
-
description: agent.description
|
|
12
|
-
?? `Delegate a task to the "${agent.name}" agent`,
|
|
13
|
-
parameters: schema_1.LLMSchema.object({
|
|
14
|
-
prompt: schema_1.LLMSchema.string()
|
|
15
|
-
.describe('The task or question to delegate to this agent'),
|
|
16
|
-
}),
|
|
17
|
-
execute: async (args) => {
|
|
18
|
-
const result = await agent.run(args.prompt, runOptions);
|
|
19
|
-
return result.text;
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.LLMAgentToolAdapter = LLMAgentToolAdapter;
|
|
25
|
-
//# sourceMappingURL=LLMAgentToolAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAgentToolAdapter.js","sourceRoot":"","sources":["../../src/agent/LLMAgentToolAdapter.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAC5C,+CAA+C;AAO/C,MAAa,mBAAmB;IAC9B,MAAM,CAAC,WAAW,CAIhB,KAA6B,EAC7B,UAAyC;QAEzC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAEjE,OAAO,eAAO,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;mBACzB,2BAA2B,KAAK,CAAC,IAAI,SAAS;YACnD,UAAU,EAAE,kBAAS,CAAC,MAAM,CAAC;gBAC3B,MAAM,EAAE,kBAAS,CAAC,MAAM,EAAE;qBACvB,QAAQ,CACP,gDAAgD,CACjD;aACJ,CAAC;YACF,OAAO,EAAE,KAAK,EACZ,IAAwB,EACP,EAAE;gBACnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAExD,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AA7BD,kDA6BC"}
|
package/dist/agent/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { LLMAgentBase } from './LLMAgentBase';
|
|
2
|
-
export { LLMAgent } from './LLMAgent';
|
|
3
|
-
export { LLMAgentOrchestrator } from './LLMAgentOrchestrator';
|
|
4
|
-
export { LLMAgentToolAdapter } from './LLMAgentToolAdapter';
|
|
5
|
-
export { DEFAULT_MAX_AGENT_STEPS } from './LLMAgent.constants';
|
|
6
|
-
export type { LLMAgentConfig, LLMAgentOrchestratorConfig, LLMAgentRunOptions, LLMAgentResult, LLMAgentLike, } from './LLMAgent.typedefs';
|
package/dist/agent/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MAX_AGENT_STEPS = exports.LLMAgentToolAdapter = exports.LLMAgentOrchestrator = exports.LLMAgent = exports.LLMAgentBase = void 0;
|
|
4
|
-
var LLMAgentBase_1 = require("./LLMAgentBase");
|
|
5
|
-
Object.defineProperty(exports, "LLMAgentBase", { enumerable: true, get: function () { return LLMAgentBase_1.LLMAgentBase; } });
|
|
6
|
-
var LLMAgent_1 = require("./LLMAgent");
|
|
7
|
-
Object.defineProperty(exports, "LLMAgent", { enumerable: true, get: function () { return LLMAgent_1.LLMAgent; } });
|
|
8
|
-
var LLMAgentOrchestrator_1 = require("./LLMAgentOrchestrator");
|
|
9
|
-
Object.defineProperty(exports, "LLMAgentOrchestrator", { enumerable: true, get: function () { return LLMAgentOrchestrator_1.LLMAgentOrchestrator; } });
|
|
10
|
-
var LLMAgentToolAdapter_1 = require("./LLMAgentToolAdapter");
|
|
11
|
-
Object.defineProperty(exports, "LLMAgentToolAdapter", { enumerable: true, get: function () { return LLMAgentToolAdapter_1.LLMAgentToolAdapter; } });
|
|
12
|
-
var LLMAgent_constants_1 = require("./LLMAgent.constants");
|
|
13
|
-
Object.defineProperty(exports, "DEFAULT_MAX_AGENT_STEPS", { enumerable: true, get: function () { return LLMAgent_constants_1.DEFAULT_MAX_AGENT_STEPS; } });
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
package/dist/agent/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,2DAA+D;AAAtD,6HAAA,uBAAuB,OAAA"}
|