crewx 0.1.0 → 0.1.2
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/LICENSE +197 -9
- package/README.md +120 -28
- package/crewx.yaml +1273 -0
- package/dist/agent.types.d.ts +92 -0
- package/dist/agent.types.js +16 -0
- package/dist/agent.types.js.map +1 -0
- package/dist/ai-provider.service.d.ts +25 -0
- package/dist/ai-provider.service.js +138 -0
- package/dist/ai-provider.service.js.map +1 -0
- package/dist/ai.service.d.ts +50 -0
- package/dist/ai.service.js +625 -0
- package/dist/ai.service.js.map +1 -0
- package/dist/app.module.d.ts +5 -0
- package/dist/app.module.js +88 -0
- package/dist/app.module.js.map +1 -0
- package/dist/cli/chat.handler.d.ts +19 -0
- package/dist/cli/chat.handler.js +429 -0
- package/dist/cli/chat.handler.js.map +1 -0
- package/dist/cli/cli.handler.d.ts +4 -0
- package/dist/cli/cli.handler.js +93 -0
- package/dist/cli/cli.handler.js.map +1 -0
- package/dist/cli/doctor.handler.d.ts +36 -0
- package/dist/cli/doctor.handler.js +382 -0
- package/dist/cli/doctor.handler.js.map +1 -0
- package/dist/cli/execute.handler.d.ts +2 -0
- package/dist/cli/execute.handler.js +269 -0
- package/dist/cli/execute.handler.js.map +1 -0
- package/dist/cli/help.handler.d.ts +2 -0
- package/dist/cli/help.handler.js +10 -0
- package/dist/cli/help.handler.js.map +1 -0
- package/dist/cli/init.handler.d.ts +25 -0
- package/dist/cli/init.handler.js +355 -0
- package/dist/cli/init.handler.js.map +1 -0
- package/dist/cli/query.handler.d.ts +2 -0
- package/dist/cli/query.handler.js +351 -0
- package/dist/cli/query.handler.js.map +1 -0
- package/dist/cli/templates.handler.d.ts +2 -0
- package/dist/cli/templates.handler.js +100 -0
- package/dist/cli/templates.handler.js.map +1 -0
- package/dist/cli-options.d.ts +22 -0
- package/dist/cli-options.js +195 -0
- package/dist/cli-options.js.map +1 -0
- package/dist/config/timeout.config.d.ts +14 -0
- package/dist/config/timeout.config.js +34 -0
- package/dist/config/timeout.config.js.map +1 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
- package/dist/conversation/base-conversation-history.provider.js +45 -0
- package/dist/conversation/base-conversation-history.provider.js.map +1 -0
- package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
- package/dist/conversation/cli-conversation-history.provider.js +104 -0
- package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
- package/dist/conversation/conversation-config.d.ts +9 -0
- package/dist/conversation/conversation-config.js +25 -0
- package/dist/conversation/conversation-config.js.map +1 -0
- package/dist/conversation/conversation-history.interface.d.ts +25 -0
- package/dist/conversation/conversation-history.interface.js +3 -0
- package/dist/conversation/conversation-history.interface.js.map +1 -0
- package/dist/conversation/conversation-provider.factory.d.ts +10 -0
- package/dist/conversation/conversation-provider.factory.js +50 -0
- package/dist/conversation/conversation-provider.factory.js.map +1 -0
- package/dist/conversation/conversation-storage.service.d.ts +15 -0
- package/dist/conversation/conversation-storage.service.js +182 -0
- package/dist/conversation/conversation-storage.service.js.map +1 -0
- package/dist/conversation/index.d.ts +7 -0
- package/dist/conversation/index.js +24 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/slack-conversation-history.provider.d.ts +22 -0
- package/dist/conversation/slack-conversation-history.provider.js +239 -0
- package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
- package/dist/crewx.tool.d.ts +421 -0
- package/dist/crewx.tool.js +1240 -0
- package/dist/crewx.tool.js.map +1 -0
- package/dist/knowledge/DocumentManager.d.ts +4 -0
- package/dist/knowledge/DocumentManager.js +119 -0
- package/dist/knowledge/DocumentManager.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +230 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp.controller.d.ts +8 -0
- package/dist/mcp.controller.js +60 -0
- package/dist/mcp.controller.js.map +1 -0
- package/dist/project.service.d.ts +44 -0
- package/dist/project.service.js +299 -0
- package/dist/project.service.js.map +1 -0
- package/dist/providers/ai-provider.interface.d.ts +30 -0
- package/dist/providers/ai-provider.interface.js +11 -0
- package/dist/providers/ai-provider.interface.js.map +1 -0
- package/dist/providers/base-ai.provider.d.ts +42 -0
- package/dist/providers/base-ai.provider.js +515 -0
- package/dist/providers/base-ai.provider.js.map +1 -0
- package/dist/providers/claude.provider.d.ts +25 -0
- package/dist/providers/claude.provider.js +376 -0
- package/dist/providers/claude.provider.js.map +1 -0
- package/dist/providers/copilot.provider.d.ts +25 -0
- package/dist/providers/copilot.provider.js +280 -0
- package/dist/providers/copilot.provider.js.map +1 -0
- package/dist/providers/gemini.provider.d.ts +22 -0
- package/dist/providers/gemini.provider.js +163 -0
- package/dist/providers/gemini.provider.js.map +1 -0
- package/dist/services/agent-loader.service.d.ts +23 -0
- package/dist/services/agent-loader.service.js +313 -0
- package/dist/services/agent-loader.service.js.map +1 -0
- package/dist/services/config-validator.service.d.ts +28 -0
- package/dist/services/config-validator.service.js +427 -0
- package/dist/services/config-validator.service.js.map +1 -0
- package/dist/services/config.service.d.ts +25 -0
- package/dist/services/config.service.js +102 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/context-enhancement.service.d.ts +13 -0
- package/dist/services/context-enhancement.service.js +169 -0
- package/dist/services/context-enhancement.service.js.map +1 -0
- package/dist/services/document-loader.service.d.ts +16 -0
- package/dist/services/document-loader.service.js +137 -0
- package/dist/services/document-loader.service.js.map +1 -0
- package/dist/services/help.service.d.ts +5 -0
- package/dist/services/help.service.js +112 -0
- package/dist/services/help.service.js.map +1 -0
- package/dist/services/intelligent-compression.service.d.ts +20 -0
- package/dist/services/intelligent-compression.service.js +179 -0
- package/dist/services/intelligent-compression.service.js.map +1 -0
- package/dist/services/parallel-processing.service.d.ts +108 -0
- package/dist/services/parallel-processing.service.js +266 -0
- package/dist/services/parallel-processing.service.js.map +1 -0
- package/dist/services/result-formatter.service.d.ts +27 -0
- package/dist/services/result-formatter.service.js +126 -0
- package/dist/services/result-formatter.service.js.map +1 -0
- package/dist/services/task-management.service.d.ts +63 -0
- package/dist/services/task-management.service.js +270 -0
- package/dist/services/task-management.service.js.map +1 -0
- package/dist/services/template.service.d.ts +36 -0
- package/dist/services/template.service.js +195 -0
- package/dist/services/template.service.js.map +1 -0
- package/dist/services/tool-call.service.d.ts +53 -0
- package/dist/services/tool-call.service.js +819 -0
- package/dist/services/tool-call.service.js.map +1 -0
- package/dist/slack/formatters/message.formatter.d.ts +25 -0
- package/dist/slack/formatters/message.formatter.js +246 -0
- package/dist/slack/formatters/message.formatter.js.map +1 -0
- package/dist/slack/slack-bot.d.ts +23 -0
- package/dist/slack/slack-bot.js +435 -0
- package/dist/slack/slack-bot.js.map +1 -0
- package/dist/stderr.logger.d.ts +8 -0
- package/dist/stderr.logger.js +26 -0
- package/dist/stderr.logger.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/config-utils.d.ts +15 -0
- package/dist/utils/config-utils.js +69 -0
- package/dist/utils/config-utils.js.map +1 -0
- package/dist/utils/error-utils.d.ts +3 -0
- package/dist/utils/error-utils.js +27 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/math-utils.d.ts +3 -0
- package/dist/utils/math-utils.js +10 -0
- package/dist/utils/math-utils.js.map +1 -0
- package/dist/utils/mcp-installer.d.ts +20 -0
- package/dist/utils/mcp-installer.js +199 -0
- package/dist/utils/mcp-installer.js.map +1 -0
- package/dist/utils/mention-parser.d.ts +18 -0
- package/dist/utils/mention-parser.js +136 -0
- package/dist/utils/mention-parser.js.map +1 -0
- package/dist/utils/simple-security.d.ts +3 -0
- package/dist/utils/simple-security.js +20 -0
- package/dist/utils/simple-security.js.map +1 -0
- package/dist/utils/stdin-utils.d.ts +2 -0
- package/dist/utils/stdin-utils.js +87 -0
- package/dist/utils/stdin-utils.js.map +1 -0
- package/dist/utils/string-utils.d.ts +1 -0
- package/dist/utils/string-utils.js +10 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/utils/template-processor.d.ts +32 -0
- package/dist/utils/template-processor.js +188 -0
- package/dist/utils/template-processor.js.map +1 -0
- package/docs/agent-configuration.md +373 -0
- package/docs/agent-registry-strategy.md +348 -0
- package/docs/branding-decision-crewx.md +395 -0
- package/docs/claude-code-docker-guide.md +264 -0
- package/docs/cli-guide.md +295 -0
- package/docs/development.md +595 -0
- package/docs/guides/agent-best-practices.md +97 -0
- package/docs/guides/bug-management.md +600 -0
- package/docs/guides/git-bug-reference.md +366 -0
- package/docs/mcp-integration.md +187 -0
- package/docs/process/development-workflow.md +84 -0
- package/docs/roadmap.md +528 -0
- package/docs/rules/branch-protection.md +40 -0
- package/docs/standards/rc-versioning.md +60 -0
- package/docs/standards/report-structure.md +67 -0
- package/docs/templates.md +517 -0
- package/docs/tools.md +583 -0
- package/docs/troubleshooting.md +585 -0
- package/package.json +106 -21
- package/bin/crewx.js +0 -20
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
45
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.AgentLoaderService = void 0;
|
|
49
|
+
const common_1 = require("@nestjs/common");
|
|
50
|
+
const yaml = __importStar(require("js-yaml"));
|
|
51
|
+
const promises_1 = require("fs/promises");
|
|
52
|
+
const error_utils_1 = require("../utils/error-utils");
|
|
53
|
+
const document_loader_service_1 = require("./document-loader.service");
|
|
54
|
+
const template_service_1 = require("./template.service");
|
|
55
|
+
const config_validator_service_1 = require("./config-validator.service");
|
|
56
|
+
let AgentLoaderService = class AgentLoaderService {
|
|
57
|
+
constructor(documentLoaderService, templateService, configValidatorService) {
|
|
58
|
+
this.documentLoaderService = documentLoaderService;
|
|
59
|
+
this.templateService = templateService;
|
|
60
|
+
this.configValidatorService = configValidatorService;
|
|
61
|
+
this.logger = new common_1.Logger('AgentLoaderService');
|
|
62
|
+
this.defaultCliAgents = [
|
|
63
|
+
{
|
|
64
|
+
id: 'claude',
|
|
65
|
+
name: 'Claude AI',
|
|
66
|
+
role: 'AI Assistant',
|
|
67
|
+
team: 'AI Team',
|
|
68
|
+
provider: 'claude',
|
|
69
|
+
workingDirectory: './',
|
|
70
|
+
capabilities: ['general_assistance', 'code_analysis', 'writing'],
|
|
71
|
+
description: 'Claude AI assistant for general tasks, code analysis, and writing assistance.',
|
|
72
|
+
specialties: ['General AI', 'Code Analysis', 'Writing', 'Problem Solving'],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'gemini',
|
|
76
|
+
name: 'Gemini AI',
|
|
77
|
+
role: 'AI Assistant',
|
|
78
|
+
team: 'AI Team',
|
|
79
|
+
provider: 'gemini',
|
|
80
|
+
workingDirectory: './',
|
|
81
|
+
capabilities: ['general_assistance', 'code_analysis', 'research'],
|
|
82
|
+
description: 'Gemini AI assistant for general tasks, code analysis, and research assistance.',
|
|
83
|
+
specialties: ['General AI', 'Code Analysis', 'Research', 'Data Analysis'],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'copilot',
|
|
87
|
+
name: 'GitHub Copilot',
|
|
88
|
+
role: 'AI Assistant',
|
|
89
|
+
team: 'AI Team',
|
|
90
|
+
provider: 'copilot',
|
|
91
|
+
workingDirectory: './',
|
|
92
|
+
capabilities: ['code_generation', 'code_completion', 'debugging'],
|
|
93
|
+
description: 'GitHub Copilot AI assistant for code generation, completion, and debugging.',
|
|
94
|
+
specialties: ['Code Generation', 'Code Completion', 'Debugging', 'GitHub Integration'],
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
async getAllAgents() {
|
|
99
|
+
return this.loadAvailableAgents();
|
|
100
|
+
}
|
|
101
|
+
getDefaultCliAgents() {
|
|
102
|
+
return [...this.defaultCliAgents];
|
|
103
|
+
}
|
|
104
|
+
getConfigSource() {
|
|
105
|
+
const agentsConfigPath = process.env.AGENTS_CONFIG;
|
|
106
|
+
return {
|
|
107
|
+
source: agentsConfigPath ? 'External YAML file' : 'Default hardcoded values',
|
|
108
|
+
path: agentsConfigPath,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async loadAvailableAgents() {
|
|
112
|
+
try {
|
|
113
|
+
let allAgents = [];
|
|
114
|
+
this.logger.log('Loading built-in agents from template...');
|
|
115
|
+
try {
|
|
116
|
+
const builtInAgents = await this.loadBuiltInAgents();
|
|
117
|
+
allAgents = [...builtInAgents];
|
|
118
|
+
this.logger.log(`Loaded ${builtInAgents.length} built-in agents`);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
this.logger.warn('Failed to load built-in agents, using fallback defaults');
|
|
122
|
+
allAgents = [...this.defaultCliAgents];
|
|
123
|
+
}
|
|
124
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
125
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
126
|
+
let agentsConfigPath;
|
|
127
|
+
if (process.env.CREWX_CONFIG) {
|
|
128
|
+
agentsConfigPath = process.env.CREWX_CONFIG;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const crewConfigPath = path.join(process.cwd(), 'crewx.yaml');
|
|
132
|
+
const agentsYamlPath = path.join(process.cwd(), 'agents.yaml');
|
|
133
|
+
if (fs.existsSync(crewConfigPath)) {
|
|
134
|
+
agentsConfigPath = crewConfigPath;
|
|
135
|
+
this.logger.log('Using crewx.yaml for agent configuration');
|
|
136
|
+
}
|
|
137
|
+
else if (fs.existsSync(agentsYamlPath)) {
|
|
138
|
+
agentsConfigPath = agentsYamlPath;
|
|
139
|
+
this.logger.log('Using agents.yaml for agent configuration (backward compatibility)');
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
agentsConfigPath = crewConfigPath;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
this.logger.log(`Loading user agents from config: ${agentsConfigPath}`);
|
|
146
|
+
try {
|
|
147
|
+
const userAgents = await this.loadAgentsFromConfig(agentsConfigPath);
|
|
148
|
+
this.logger.log(`Loaded ${userAgents.length} user-defined agents`);
|
|
149
|
+
const builtInIds = new Set(allAgents.map((a) => a.id));
|
|
150
|
+
const newUserAgents = userAgents.filter((a) => !builtInIds.has(a.id));
|
|
151
|
+
const overrideUserAgents = userAgents.filter((a) => builtInIds.has(a.id));
|
|
152
|
+
for (const userAgent of overrideUserAgents) {
|
|
153
|
+
const index = allAgents.findIndex((a) => a.id === userAgent.id);
|
|
154
|
+
if (index >= 0) {
|
|
155
|
+
this.logger.log(`User config overrides built-in agent: ${userAgent.id}`);
|
|
156
|
+
allAgents[index] = userAgent;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
allAgents = [...allAgents, ...newUserAgents];
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
this.logger.log('No user agents.yaml found or failed to load, using built-in agents only');
|
|
163
|
+
}
|
|
164
|
+
this.logger.log(`Total agents loaded: ${allAgents.length}`);
|
|
165
|
+
return allAgents;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
this.logger.error('Failed to load agents:', (0, error_utils_1.getErrorMessage)(error));
|
|
169
|
+
return [...this.defaultCliAgents];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async loadBuiltInAgents() {
|
|
173
|
+
try {
|
|
174
|
+
let templateContent;
|
|
175
|
+
try {
|
|
176
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
177
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
178
|
+
const templatePath = path.join(__dirname, '..', '..', 'templates', 'agents', 'default.yaml');
|
|
179
|
+
templateContent = await fs.readFile(templatePath, 'utf-8');
|
|
180
|
+
this.logger.log('Loaded built-in agents from local template');
|
|
181
|
+
}
|
|
182
|
+
catch (localError) {
|
|
183
|
+
if (!this.templateService) {
|
|
184
|
+
throw new Error('TemplateService not available for GitHub download');
|
|
185
|
+
}
|
|
186
|
+
this.logger.log('Local template not found, trying GitHub...');
|
|
187
|
+
templateContent = await this.templateService.downloadTemplate('default', 'main');
|
|
188
|
+
this.logger.log('Loaded built-in agents from GitHub template');
|
|
189
|
+
}
|
|
190
|
+
const config = yaml.load(templateContent);
|
|
191
|
+
if (!config.agents || !Array.isArray(config.agents)) {
|
|
192
|
+
throw new Error('Invalid template: missing agents array');
|
|
193
|
+
}
|
|
194
|
+
if (this.documentLoaderService) {
|
|
195
|
+
await this.documentLoaderService.initialize(config.documents);
|
|
196
|
+
}
|
|
197
|
+
const processedAgents = await Promise.all(config.agents.map(async (agent) => {
|
|
198
|
+
let systemPrompt = agent.inline?.system_prompt;
|
|
199
|
+
return {
|
|
200
|
+
id: agent.id,
|
|
201
|
+
name: agent.name || agent.id,
|
|
202
|
+
role: agent.role || 'AI Agent',
|
|
203
|
+
team: agent.team,
|
|
204
|
+
provider: this.parseProviderConfig(agent),
|
|
205
|
+
workingDirectory: agent.working_directory || './',
|
|
206
|
+
capabilities: agent.capabilities || [],
|
|
207
|
+
description: systemPrompt ? this.extractDescription(systemPrompt) : `${agent.name || agent.id} agent`,
|
|
208
|
+
specialties: agent.specialties || [],
|
|
209
|
+
systemPrompt: systemPrompt,
|
|
210
|
+
options: agent.options || [],
|
|
211
|
+
inline: agent.inline,
|
|
212
|
+
};
|
|
213
|
+
}));
|
|
214
|
+
return processedAgents;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
this.logger.error('Failed to load built-in agents from template:', (0, error_utils_1.getErrorMessage)(error));
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async loadAgentsFromConfig(configPath) {
|
|
222
|
+
try {
|
|
223
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
224
|
+
this.logger.log(`Loading agents from config: ${configPath}`);
|
|
225
|
+
const configContent = await (0, promises_1.readFile)(configPath, 'utf-8');
|
|
226
|
+
let config;
|
|
227
|
+
if (configPath.endsWith('.yaml') || configPath.endsWith('.yml')) {
|
|
228
|
+
config = yaml.load(configContent);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
config = JSON.parse(configContent);
|
|
232
|
+
}
|
|
233
|
+
if (!config.agents || !Array.isArray(config.agents)) {
|
|
234
|
+
throw new Error('Invalid config: missing agents array');
|
|
235
|
+
}
|
|
236
|
+
if (this.configValidatorService) {
|
|
237
|
+
const validationResult = this.configValidatorService.validateConfig(config, configPath);
|
|
238
|
+
if (!validationResult.valid) {
|
|
239
|
+
const errorMessage = this.configValidatorService.formatErrorMessage(validationResult.errors);
|
|
240
|
+
this.logger.error(errorMessage);
|
|
241
|
+
throw new Error(`Configuration validation failed:\n${errorMessage}`);
|
|
242
|
+
}
|
|
243
|
+
this.logger.log('Configuration validation passed');
|
|
244
|
+
}
|
|
245
|
+
if (this.documentLoaderService) {
|
|
246
|
+
const projectPath = path.dirname(configPath);
|
|
247
|
+
this.logger.log(`Initializing DocumentLoaderService, has documents: ${!!config.documents}`);
|
|
248
|
+
await this.documentLoaderService.initialize(config.documents, projectPath);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
this.logger.warn('DocumentLoaderService not injected - documents will not be loaded');
|
|
252
|
+
}
|
|
253
|
+
const agents = await Promise.all(config.agents.map(async (agent) => {
|
|
254
|
+
let systemPrompt = agent.inline?.system_prompt;
|
|
255
|
+
return {
|
|
256
|
+
id: agent.id,
|
|
257
|
+
name: agent.name || agent.id,
|
|
258
|
+
role: agent.role || 'AI Agent',
|
|
259
|
+
team: agent.team,
|
|
260
|
+
provider: this.parseProviderConfig(agent),
|
|
261
|
+
workingDirectory: agent.working_directory || './',
|
|
262
|
+
capabilities: agent.capabilities || [],
|
|
263
|
+
description: systemPrompt ? this.extractDescription(systemPrompt) : `${agent.name || agent.id} agent`,
|
|
264
|
+
specialties: agent.specialties || [],
|
|
265
|
+
systemPrompt: systemPrompt,
|
|
266
|
+
options: agent.options || [],
|
|
267
|
+
inline: agent.inline ? {
|
|
268
|
+
...agent.inline,
|
|
269
|
+
system_prompt: systemPrompt,
|
|
270
|
+
} : undefined,
|
|
271
|
+
};
|
|
272
|
+
}));
|
|
273
|
+
return agents;
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
this.logger.error(`Failed to load agents config from ${configPath}:`, (0, error_utils_1.getErrorMessage)(error));
|
|
277
|
+
return [];
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
parseProviderConfig(agent) {
|
|
281
|
+
const configProvider = agent.provider || agent.inline?.provider;
|
|
282
|
+
if (Array.isArray(configProvider)) {
|
|
283
|
+
return configProvider;
|
|
284
|
+
}
|
|
285
|
+
else if (typeof configProvider === 'string') {
|
|
286
|
+
return configProvider;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
return 'claude';
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
extractDescription(systemPrompt) {
|
|
293
|
+
if (!systemPrompt)
|
|
294
|
+
return 'AI Agent';
|
|
295
|
+
const lines = systemPrompt.split('\n');
|
|
296
|
+
const firstLine = lines[0]?.trim();
|
|
297
|
+
if (firstLine && firstLine.length > 10) {
|
|
298
|
+
return firstLine.length > 150 ? firstLine.substring(0, 150) + '...' : firstLine;
|
|
299
|
+
}
|
|
300
|
+
return 'AI Agent';
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
exports.AgentLoaderService = AgentLoaderService;
|
|
304
|
+
exports.AgentLoaderService = AgentLoaderService = __decorate([
|
|
305
|
+
(0, common_1.Injectable)(),
|
|
306
|
+
__param(0, (0, common_1.Optional)()),
|
|
307
|
+
__param(1, (0, common_1.Optional)()),
|
|
308
|
+
__param(2, (0, common_1.Optional)()),
|
|
309
|
+
__metadata("design:paramtypes", [document_loader_service_1.DocumentLoaderService,
|
|
310
|
+
template_service_1.TemplateService,
|
|
311
|
+
config_validator_service_1.ConfigValidatorService])
|
|
312
|
+
], AgentLoaderService);
|
|
313
|
+
//# sourceMappingURL=agent-loader.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-loader.service.js","sourceRoot":"","sources":["../../src/services/agent-loader.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface ValidationError {
|
|
2
|
+
path: string;
|
|
3
|
+
message: string;
|
|
4
|
+
suggestion?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
errors: ValidationError[];
|
|
9
|
+
}
|
|
10
|
+
export declare class ConfigValidatorService {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private readonly ajv;
|
|
13
|
+
private readonly VALID_PROVIDERS;
|
|
14
|
+
private readonly KNOWN_AGENT_FIELDS;
|
|
15
|
+
private readonly KNOWN_INLINE_FIELDS;
|
|
16
|
+
private readonly KNOWN_DOCUMENT_FIELDS;
|
|
17
|
+
constructor();
|
|
18
|
+
validateConfig(config: any, configPath?: string): ValidationResult;
|
|
19
|
+
private validateSchema;
|
|
20
|
+
private formatSchemaErrors;
|
|
21
|
+
private validateDocumentFiles;
|
|
22
|
+
private detectTypos;
|
|
23
|
+
private validateValues;
|
|
24
|
+
private findClosestMatch;
|
|
25
|
+
private levenshteinDistance;
|
|
26
|
+
private formatJsonPath;
|
|
27
|
+
formatErrorMessage(errors: ValidationError[]): string;
|
|
28
|
+
}
|