@sowonai/crewx-sdk 0.1.0-dev.4 → 0.1.0-dev.40
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/README.md +28 -0
- package/dist/config/yaml-loader.js +6 -2
- package/dist/config/yaml-loader.js.map +1 -1
- package/dist/conversation/conversation-history.interface.d.ts +6 -4
- package/dist/core/agent/agent-factory.d.ts +7 -7
- package/dist/core/agent/agent-factory.js +23 -0
- package/dist/core/agent/agent-factory.js.map +1 -1
- package/dist/core/agent/agent-runtime.d.ts +18 -2
- package/dist/core/agent/agent-runtime.js +128 -24
- package/dist/core/agent/agent-runtime.js.map +1 -1
- package/dist/core/agent/index.d.ts +1 -1
- package/dist/core/agent/index.js +2 -1
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/providers/ai-provider.interface.d.ts +1 -0
- package/dist/core/providers/ai-provider.interface.js.map +1 -1
- package/dist/core/providers/base-ai.provider.d.ts +7 -0
- package/dist/core/providers/base-ai.provider.js +8 -4
- package/dist/core/providers/base-ai.provider.js.map +1 -1
- package/dist/core/providers/claude.provider.d.ts +0 -11
- package/dist/core/providers/claude.provider.js +2 -262
- package/dist/core/providers/claude.provider.js.map +1 -1
- package/dist/core/providers/codex.provider.js +2 -2
- package/dist/core/providers/codex.provider.js.map +1 -1
- package/dist/core/providers/copilot.provider.d.ts +0 -10
- package/dist/core/providers/copilot.provider.js +0 -180
- package/dist/core/providers/copilot.provider.js.map +1 -1
- package/dist/core/providers/dynamic-provider.factory.d.ts +64 -0
- package/dist/core/providers/dynamic-provider.factory.js +533 -0
- package/dist/core/providers/dynamic-provider.factory.js.map +1 -0
- package/dist/core/providers/gemini.provider.d.ts +0 -11
- package/dist/core/providers/gemini.provider.js +0 -101
- package/dist/core/providers/gemini.provider.js.map +1 -1
- package/dist/core/providers/index.d.ts +3 -0
- package/dist/core/providers/index.js +7 -1
- package/dist/core/providers/index.js.map +1 -1
- package/dist/core/providers/mock.provider.d.ts +13 -0
- package/dist/core/providers/mock.provider.js +55 -0
- package/dist/core/providers/mock.provider.js.map +1 -0
- package/dist/core/providers/provider-factory.d.ts +3 -0
- package/dist/core/providers/provider-factory.js +27 -0
- package/dist/core/providers/provider-factory.js.map +1 -0
- package/dist/index.d.ts +17 -4
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/skills-parser.d.ts +8 -0
- package/dist/schema/skills-parser.js +421 -0
- package/dist/schema/skills-parser.js.map +1 -0
- package/dist/schema/skills.types.d.ts +144 -0
- package/dist/schema/skills.types.js +41 -0
- package/dist/schema/skills.types.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +19 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/layout-loader.service.d.ts +18 -0
- package/dist/services/layout-loader.service.js +266 -0
- package/dist/services/layout-loader.service.js.map +1 -0
- package/dist/services/layout-renderer.service.d.ts +25 -0
- package/dist/services/layout-renderer.service.js +226 -0
- package/dist/services/layout-renderer.service.js.map +1 -0
- package/dist/services/props-validator.service.d.ts +29 -0
- package/dist/services/props-validator.service.js +332 -0
- package/dist/services/props-validator.service.js.map +1 -0
- package/dist/skills/adapter/claude-skill-adapter.d.ts +11 -0
- package/dist/skills/adapter/claude-skill-adapter.js +222 -0
- package/dist/skills/adapter/claude-skill-adapter.js.map +1 -0
- package/dist/skills/index.d.ts +6 -0
- package/dist/skills/index.js +31 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/runtime/progressive-loader.d.ts +27 -0
- package/dist/skills/runtime/progressive-loader.js +186 -0
- package/dist/skills/runtime/progressive-loader.js.map +1 -0
- package/dist/skills/runtime/runtime-requirements-validator.d.ts +23 -0
- package/dist/skills/runtime/runtime-requirements-validator.js +248 -0
- package/dist/skills/runtime/runtime-requirements-validator.js.map +1 -0
- package/dist/skills/runtime/skill-runtime.service.d.ts +42 -0
- package/dist/skills/runtime/skill-runtime.service.js +434 -0
- package/dist/skills/runtime/skill-runtime.service.js.map +1 -0
- package/dist/types/agent.types.d.ts +10 -2
- package/dist/types/agent.types.js.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/layout.types.d.ts +113 -0
- package/dist/types/layout.types.js +22 -0
- package/dist/types/layout.types.js.map +1 -0
- package/dist/types/provider.types.d.ts +12 -0
- package/dist/types/provider.types.js +3 -0
- package/dist/types/provider.types.js.map +1 -0
- package/dist/types/skill-runtime.types.d.ts +244 -0
- package/dist/types/skill-runtime.types.js +44 -0
- package/dist/types/skill-runtime.types.js.map +1 -0
- package/dist/types/template.types.d.ts +38 -0
- package/dist/types/template.types.js +3 -0
- package/dist/types/template.types.js.map +1 -0
- package/package.json +14 -13
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseCrewxConfig = parseCrewxConfig;
|
|
4
|
+
exports.parseSkillManifest = parseSkillManifest;
|
|
5
|
+
exports.validateSkillMetadata = validateSkillMetadata;
|
|
6
|
+
exports.loadSkillContent = loadSkillContent;
|
|
7
|
+
exports.clearSkillCache = clearSkillCache;
|
|
8
|
+
exports.parseSkillManifestFromFile = parseSkillManifestFromFile;
|
|
9
|
+
exports.parseCrewxConfigFromFile = parseCrewxConfigFromFile;
|
|
10
|
+
const js_yaml_1 = require("js-yaml");
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const skills_types_1 = require("./skills.types");
|
|
13
|
+
const DEFAULT_PARSER_OPTIONS = {
|
|
14
|
+
validationMode: 'strict',
|
|
15
|
+
loadContent: false,
|
|
16
|
+
resolveDependencies: false,
|
|
17
|
+
searchPaths: [],
|
|
18
|
+
cache: true,
|
|
19
|
+
};
|
|
20
|
+
const skillCache = {
|
|
21
|
+
metadata: new Map(),
|
|
22
|
+
content: new Map(),
|
|
23
|
+
definitions: new Map(),
|
|
24
|
+
};
|
|
25
|
+
function parseCrewxConfig(yamlString, options = {}) {
|
|
26
|
+
const opts = { ...DEFAULT_PARSER_OPTIONS, ...options };
|
|
27
|
+
if (!yamlString || typeof yamlString !== 'string') {
|
|
28
|
+
throw new skills_types_1.SkillLoadError('YAML string is required and must be a non-empty string');
|
|
29
|
+
}
|
|
30
|
+
let parsed;
|
|
31
|
+
try {
|
|
32
|
+
const trimmed = yamlString.trim();
|
|
33
|
+
parsed = (0, js_yaml_1.load)(trimmed);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
throw new skills_types_1.SkillLoadError(`Failed to parse YAML: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error instanceof Error ? error : undefined);
|
|
37
|
+
}
|
|
38
|
+
if (parsed === null ||
|
|
39
|
+
parsed === undefined ||
|
|
40
|
+
typeof parsed !== 'object' ||
|
|
41
|
+
Array.isArray(parsed)) {
|
|
42
|
+
throw new skills_types_1.SkillLoadError('YAML must contain a valid object structure');
|
|
43
|
+
}
|
|
44
|
+
const config = {};
|
|
45
|
+
if (parsed.skillsPaths) {
|
|
46
|
+
if (Array.isArray(parsed.skillsPaths)) {
|
|
47
|
+
config.skillsPaths = parsed.skillsPaths.filter((p) => typeof p === 'string');
|
|
48
|
+
}
|
|
49
|
+
else if (opts.validationMode === 'strict') {
|
|
50
|
+
throw new skills_types_1.SkillLoadError('skillsPaths must be an array of strings');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (parsed.skills) {
|
|
54
|
+
config.skills = parseSkillsConfig(parsed.skills, opts.validationMode);
|
|
55
|
+
}
|
|
56
|
+
if (parsed.layouts && typeof parsed.layouts === 'object') {
|
|
57
|
+
config.layouts = parsed.layouts;
|
|
58
|
+
}
|
|
59
|
+
if (parsed.documents && typeof parsed.documents === 'object') {
|
|
60
|
+
config.documents = parsed.documents;
|
|
61
|
+
}
|
|
62
|
+
if (parsed.settings && typeof parsed.settings === 'object') {
|
|
63
|
+
config.settings = parsed.settings;
|
|
64
|
+
}
|
|
65
|
+
if (parsed.agents) {
|
|
66
|
+
if (Array.isArray(parsed.agents)) {
|
|
67
|
+
config.agents = parsed.agents.map((agent) => parseAgentDefinition(agent, opts.validationMode));
|
|
68
|
+
}
|
|
69
|
+
else if (opts.validationMode === 'strict') {
|
|
70
|
+
throw new skills_types_1.SkillLoadError('agents must be an array');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (const key of Object.keys(parsed)) {
|
|
74
|
+
if (!['skillsPaths', 'skills', 'layouts', 'documents', 'settings', 'agents'].includes(key)) {
|
|
75
|
+
config[key] = parsed[key];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return config;
|
|
79
|
+
}
|
|
80
|
+
function parseSkillsConfig(skillsObj, validationMode) {
|
|
81
|
+
const config = {};
|
|
82
|
+
if (typeof skillsObj !== 'object' || Array.isArray(skillsObj)) {
|
|
83
|
+
if (validationMode === 'strict') {
|
|
84
|
+
throw new skills_types_1.SkillLoadError('skills configuration must be an object');
|
|
85
|
+
}
|
|
86
|
+
return config;
|
|
87
|
+
}
|
|
88
|
+
if (skillsObj.include !== undefined) {
|
|
89
|
+
if (Array.isArray(skillsObj.include)) {
|
|
90
|
+
config.include = skillsObj.include.filter((s) => typeof s === 'string');
|
|
91
|
+
}
|
|
92
|
+
else if (validationMode === 'strict') {
|
|
93
|
+
throw new skills_types_1.SkillLoadError('skills.include must be an array of strings');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (skillsObj.exclude !== undefined) {
|
|
97
|
+
if (Array.isArray(skillsObj.exclude)) {
|
|
98
|
+
config.exclude = skillsObj.exclude.filter((s) => typeof s === 'string');
|
|
99
|
+
}
|
|
100
|
+
else if (validationMode === 'strict') {
|
|
101
|
+
throw new skills_types_1.SkillLoadError('skills.exclude must be an array of strings');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (skillsObj.autoload !== undefined) {
|
|
105
|
+
if (typeof skillsObj.autoload === 'boolean') {
|
|
106
|
+
config.autoload = skillsObj.autoload;
|
|
107
|
+
}
|
|
108
|
+
else if (validationMode === 'strict') {
|
|
109
|
+
throw new skills_types_1.SkillLoadError('skills.autoload must be a boolean');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return config;
|
|
113
|
+
}
|
|
114
|
+
function parseAgentDefinition(agentObj, validationMode) {
|
|
115
|
+
if (typeof agentObj !== 'object' || Array.isArray(agentObj)) {
|
|
116
|
+
if (validationMode === 'strict') {
|
|
117
|
+
throw new skills_types_1.SkillLoadError('Agent definition must be an object');
|
|
118
|
+
}
|
|
119
|
+
return agentObj;
|
|
120
|
+
}
|
|
121
|
+
if (agentObj.skills) {
|
|
122
|
+
agentObj.skills = parseSkillsConfig(agentObj.skills, validationMode);
|
|
123
|
+
}
|
|
124
|
+
return agentObj;
|
|
125
|
+
}
|
|
126
|
+
function parseSkillManifest(markdownContent, options = {}) {
|
|
127
|
+
const opts = { ...DEFAULT_PARSER_OPTIONS, ...options };
|
|
128
|
+
if (!markdownContent || typeof markdownContent !== 'string') {
|
|
129
|
+
throw new skills_types_1.SkillLoadError('Markdown content is required and must be a non-empty string');
|
|
130
|
+
}
|
|
131
|
+
const frontmatterMatch = markdownContent.match(/^---\s*\n([\s\S]*?)\n---\s*\n/);
|
|
132
|
+
if (!frontmatterMatch || !frontmatterMatch[1]) {
|
|
133
|
+
throw new skills_types_1.SkillLoadError('Skill manifest must contain YAML frontmatter (---...---)');
|
|
134
|
+
}
|
|
135
|
+
const frontmatterYaml = frontmatterMatch[1];
|
|
136
|
+
const contentAfterFrontmatter = markdownContent.slice(frontmatterMatch[0].length);
|
|
137
|
+
let metadata;
|
|
138
|
+
try {
|
|
139
|
+
const parsed = (0, js_yaml_1.load)(frontmatterYaml);
|
|
140
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
141
|
+
throw new Error('Frontmatter must be a YAML object');
|
|
142
|
+
}
|
|
143
|
+
metadata = parseSkillMetadata(parsed, opts.validationMode);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const skillName = error?.skillName || 'unknown';
|
|
147
|
+
throw new skills_types_1.SkillLoadError(`Failed to parse skill frontmatter: ${error instanceof Error ? error.message : 'Unknown error'}`, skillName, error instanceof Error ? error : undefined);
|
|
148
|
+
}
|
|
149
|
+
const validationResult = validateSkillMetadata(metadata);
|
|
150
|
+
if (!validationResult.valid && opts.validationMode === 'strict') {
|
|
151
|
+
const errorMessages = validationResult.errors.map((e) => `${e.field}: ${e.message}`).join('; ');
|
|
152
|
+
throw new skills_types_1.SkillLoadError(`Skill metadata validation failed: ${errorMessages}`, metadata.name);
|
|
153
|
+
}
|
|
154
|
+
const definition = {
|
|
155
|
+
metadata,
|
|
156
|
+
fullyLoaded: opts.loadContent,
|
|
157
|
+
};
|
|
158
|
+
if (opts.loadContent) {
|
|
159
|
+
definition.content = parseSkillContent(contentAfterFrontmatter);
|
|
160
|
+
}
|
|
161
|
+
return definition;
|
|
162
|
+
}
|
|
163
|
+
function parseSkillMetadata(frontmatter, validationMode) {
|
|
164
|
+
const metadata = {
|
|
165
|
+
name: '',
|
|
166
|
+
description: '',
|
|
167
|
+
version: '',
|
|
168
|
+
};
|
|
169
|
+
if (typeof frontmatter.name === 'string') {
|
|
170
|
+
metadata.name = frontmatter.name;
|
|
171
|
+
}
|
|
172
|
+
else if (validationMode === 'strict') {
|
|
173
|
+
throw new skills_types_1.SkillLoadError('Skill name is required and must be a string');
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
metadata.name = '';
|
|
177
|
+
}
|
|
178
|
+
if (typeof frontmatter.description === 'string') {
|
|
179
|
+
metadata.description = frontmatter.description;
|
|
180
|
+
}
|
|
181
|
+
else if (validationMode === 'strict') {
|
|
182
|
+
throw new skills_types_1.SkillLoadError('Skill description is required and must be a string');
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
metadata.description = '';
|
|
186
|
+
}
|
|
187
|
+
if (typeof frontmatter.version === 'string') {
|
|
188
|
+
metadata.version = frontmatter.version;
|
|
189
|
+
}
|
|
190
|
+
else if (validationMode === 'strict') {
|
|
191
|
+
throw new skills_types_1.SkillLoadError('Skill version is required and must be a string');
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
metadata.version = '';
|
|
195
|
+
}
|
|
196
|
+
if (frontmatter.dependencies !== undefined) {
|
|
197
|
+
if (Array.isArray(frontmatter.dependencies)) {
|
|
198
|
+
metadata.dependencies = frontmatter.dependencies.filter((d) => typeof d === 'string');
|
|
199
|
+
}
|
|
200
|
+
else if (validationMode === 'strict') {
|
|
201
|
+
throw new skills_types_1.SkillLoadError('Skill dependencies must be an array');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (frontmatter.runtime !== undefined) {
|
|
205
|
+
if (typeof frontmatter.runtime === 'object' && frontmatter.runtime !== null) {
|
|
206
|
+
metadata.runtime = frontmatter.runtime;
|
|
207
|
+
}
|
|
208
|
+
else if (validationMode === 'strict') {
|
|
209
|
+
throw new skills_types_1.SkillLoadError('Skill runtime must be an object');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (frontmatter.visibility !== undefined) {
|
|
213
|
+
if (typeof frontmatter.visibility === 'string' &&
|
|
214
|
+
['public', 'private', 'internal'].includes(frontmatter.visibility)) {
|
|
215
|
+
metadata.visibility = frontmatter.visibility;
|
|
216
|
+
}
|
|
217
|
+
else if (validationMode === 'strict') {
|
|
218
|
+
throw new skills_types_1.SkillLoadError('Skill visibility must be "public", "private", or "internal"');
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
for (const key of Object.keys(frontmatter)) {
|
|
222
|
+
if (!['name', 'description', 'version', 'dependencies', 'runtime', 'visibility'].includes(key)) {
|
|
223
|
+
metadata[key] = frontmatter[key];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return metadata;
|
|
227
|
+
}
|
|
228
|
+
function parseSkillContent(markdown) {
|
|
229
|
+
const content = {
|
|
230
|
+
raw: markdown,
|
|
231
|
+
};
|
|
232
|
+
const roleMatch = markdown.match(/##\s+Role\s*\n([\s\S]*?)(?=\n##\s+|\n---\s*\n|$)/i);
|
|
233
|
+
if (roleMatch && roleMatch[1]) {
|
|
234
|
+
content.role = roleMatch[1].trim();
|
|
235
|
+
}
|
|
236
|
+
const taskMatch = markdown.match(/##\s+Task\s*\n([\s\S]*?)(?=\n##\s+|\n---\s*\n|$)/i);
|
|
237
|
+
if (taskMatch && taskMatch[1]) {
|
|
238
|
+
content.task = taskMatch[1].trim();
|
|
239
|
+
}
|
|
240
|
+
const instructionsMatch = markdown.match(/##\s+Instructions\s*\n([\s\S]*?)(?=\n##\s+|\n---\s*\n|$)/i);
|
|
241
|
+
if (instructionsMatch && instructionsMatch[1]) {
|
|
242
|
+
content.instructions = instructionsMatch[1].trim();
|
|
243
|
+
}
|
|
244
|
+
return content;
|
|
245
|
+
}
|
|
246
|
+
function validateSkillMetadata(metadata) {
|
|
247
|
+
const errors = [];
|
|
248
|
+
const warnings = [];
|
|
249
|
+
const skillName = metadata.name || 'unknown';
|
|
250
|
+
if (!metadata.name) {
|
|
251
|
+
errors.push({
|
|
252
|
+
skillName,
|
|
253
|
+
field: 'name',
|
|
254
|
+
message: 'Skill name is required',
|
|
255
|
+
expected: 'non-empty string',
|
|
256
|
+
actual: metadata.name,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const namePattern = /^[a-z0-9-]+$/;
|
|
261
|
+
if (!namePattern.test(metadata.name)) {
|
|
262
|
+
errors.push({
|
|
263
|
+
skillName: metadata.name,
|
|
264
|
+
field: 'name',
|
|
265
|
+
message: 'Skill name must be kebab-case (lowercase letters, numbers, and hyphens only)',
|
|
266
|
+
expected: 'kebab-case format',
|
|
267
|
+
actual: metadata.name,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
if (metadata.name.length > 50) {
|
|
271
|
+
warnings?.push({
|
|
272
|
+
skillName: metadata.name,
|
|
273
|
+
field: 'name',
|
|
274
|
+
message: 'Skill name should be 50 characters or less',
|
|
275
|
+
expected: '≤50 characters',
|
|
276
|
+
actual: metadata.name.length,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (!metadata.description) {
|
|
281
|
+
errors.push({
|
|
282
|
+
skillName,
|
|
283
|
+
field: 'description',
|
|
284
|
+
message: 'Skill description is required',
|
|
285
|
+
expected: 'non-empty string',
|
|
286
|
+
actual: metadata.description,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
if (metadata.description.length < 10) {
|
|
291
|
+
warnings?.push({
|
|
292
|
+
skillName,
|
|
293
|
+
field: 'description',
|
|
294
|
+
message: 'Skill description should be at least 10 characters',
|
|
295
|
+
expected: '≥10 characters',
|
|
296
|
+
actual: metadata.description.length,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
if (metadata.description.length > 200) {
|
|
300
|
+
warnings?.push({
|
|
301
|
+
skillName,
|
|
302
|
+
field: 'description',
|
|
303
|
+
message: 'Skill description should be 200 characters or less',
|
|
304
|
+
expected: '≤200 characters',
|
|
305
|
+
actual: metadata.description.length,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (!metadata.version) {
|
|
310
|
+
errors.push({
|
|
311
|
+
skillName,
|
|
312
|
+
field: 'version',
|
|
313
|
+
message: 'Skill version is required',
|
|
314
|
+
expected: 'semantic version (e.g., "1.0.0")',
|
|
315
|
+
actual: metadata.version,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
const versionPattern = /^\d+\.\d+\.\d+$/;
|
|
320
|
+
if (!versionPattern.test(metadata.version)) {
|
|
321
|
+
errors.push({
|
|
322
|
+
skillName,
|
|
323
|
+
field: 'version',
|
|
324
|
+
message: 'Skill version must follow semantic versioning (major.minor.patch)',
|
|
325
|
+
expected: 'X.Y.Z format',
|
|
326
|
+
actual: metadata.version,
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (metadata.dependencies) {
|
|
331
|
+
if (!Array.isArray(metadata.dependencies)) {
|
|
332
|
+
errors.push({
|
|
333
|
+
skillName,
|
|
334
|
+
field: 'dependencies',
|
|
335
|
+
message: 'Dependencies must be an array',
|
|
336
|
+
expected: 'array of strings',
|
|
337
|
+
actual: typeof metadata.dependencies,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
const depPattern = /^[a-z0-9-]+(@\d+\.\d+\.\d+)?$/;
|
|
342
|
+
metadata.dependencies.forEach((dep, index) => {
|
|
343
|
+
if (typeof dep !== 'string' || !depPattern.test(dep)) {
|
|
344
|
+
errors.push({
|
|
345
|
+
skillName,
|
|
346
|
+
field: `dependencies[${index}]`,
|
|
347
|
+
message: 'Dependency must be in format "skill-name" or "skill-name@version"',
|
|
348
|
+
expected: 'kebab-case name with optional @version',
|
|
349
|
+
actual: dep,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return {
|
|
356
|
+
valid: errors.length === 0,
|
|
357
|
+
errors,
|
|
358
|
+
warnings: warnings || [],
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
function loadSkillContent(definition, filePath) {
|
|
362
|
+
if (definition.fullyLoaded) {
|
|
363
|
+
return definition;
|
|
364
|
+
}
|
|
365
|
+
const cacheKey = filePath || definition.metadata.name;
|
|
366
|
+
if (skillCache.content.has(cacheKey)) {
|
|
367
|
+
definition.content = skillCache.content.get(cacheKey);
|
|
368
|
+
definition.fullyLoaded = true;
|
|
369
|
+
return definition;
|
|
370
|
+
}
|
|
371
|
+
let fileContent;
|
|
372
|
+
try {
|
|
373
|
+
fileContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
throw new skills_types_1.SkillLoadError(`Failed to read skill file '${filePath}': ${error instanceof Error ? error.message : 'Unknown error'}`, definition.metadata.name, error instanceof Error ? error : undefined);
|
|
377
|
+
}
|
|
378
|
+
const frontmatterMatch = fileContent.match(/^---\s*\n[\s\S]*?\n---\s*\n/);
|
|
379
|
+
const contentAfterFrontmatter = frontmatterMatch
|
|
380
|
+
? fileContent.slice(frontmatterMatch[0].length)
|
|
381
|
+
: fileContent;
|
|
382
|
+
const content = parseSkillContent(contentAfterFrontmatter);
|
|
383
|
+
skillCache.content.set(cacheKey, content);
|
|
384
|
+
definition.content = content;
|
|
385
|
+
definition.fullyLoaded = true;
|
|
386
|
+
return definition;
|
|
387
|
+
}
|
|
388
|
+
function clearSkillCache() {
|
|
389
|
+
skillCache.metadata.clear();
|
|
390
|
+
skillCache.content.clear();
|
|
391
|
+
skillCache.definitions.clear();
|
|
392
|
+
}
|
|
393
|
+
function parseSkillManifestFromFile(filePath, options = {}) {
|
|
394
|
+
if (!filePath || typeof filePath !== 'string') {
|
|
395
|
+
throw new skills_types_1.SkillLoadError('File path is required and must be a non-empty string');
|
|
396
|
+
}
|
|
397
|
+
let fileContent;
|
|
398
|
+
try {
|
|
399
|
+
fileContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
throw new skills_types_1.SkillLoadError(`Failed to read skill file '${filePath}': ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error instanceof Error ? error : undefined);
|
|
403
|
+
}
|
|
404
|
+
const definition = parseSkillManifest(fileContent, options);
|
|
405
|
+
definition.filePath = filePath;
|
|
406
|
+
return definition;
|
|
407
|
+
}
|
|
408
|
+
function parseCrewxConfigFromFile(filePath, options = {}) {
|
|
409
|
+
if (!filePath || typeof filePath !== 'string') {
|
|
410
|
+
throw new skills_types_1.SkillLoadError('File path is required and must be a non-empty string');
|
|
411
|
+
}
|
|
412
|
+
let fileContent;
|
|
413
|
+
try {
|
|
414
|
+
fileContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
415
|
+
}
|
|
416
|
+
catch (error) {
|
|
417
|
+
throw new skills_types_1.SkillLoadError(`Failed to read config file '${filePath}': ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error instanceof Error ? error : undefined);
|
|
418
|
+
}
|
|
419
|
+
return parseCrewxConfig(fileContent, options);
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=skills-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-parser.js","sourceRoot":"","sources":["../../src/schema/skills-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
export interface SkillMetadata {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
version: string;
|
|
5
|
+
dependencies?: string[];
|
|
6
|
+
runtime?: {
|
|
7
|
+
python?: string;
|
|
8
|
+
node?: string;
|
|
9
|
+
[key: string]: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
visibility?: 'public' | 'private' | 'internal';
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface SkillContent {
|
|
15
|
+
role?: string;
|
|
16
|
+
task?: string;
|
|
17
|
+
instructions?: string;
|
|
18
|
+
raw?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SkillDefinition {
|
|
21
|
+
metadata: SkillMetadata;
|
|
22
|
+
content?: SkillContent;
|
|
23
|
+
filePath?: string;
|
|
24
|
+
fullyLoaded?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface SkillsConfig {
|
|
27
|
+
include?: string[];
|
|
28
|
+
exclude?: string[];
|
|
29
|
+
autoload?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface CrewxProjectConfig {
|
|
32
|
+
skillsPaths?: string[];
|
|
33
|
+
skills?: SkillsConfig;
|
|
34
|
+
layouts?: Record<string, string>;
|
|
35
|
+
documents?: Record<string, string>;
|
|
36
|
+
settings?: {
|
|
37
|
+
slack?: {
|
|
38
|
+
log_conversations?: boolean;
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
};
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
};
|
|
43
|
+
agents?: AgentDefinition[];
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
}
|
|
46
|
+
export interface AgentDefinition {
|
|
47
|
+
id: string;
|
|
48
|
+
name?: string;
|
|
49
|
+
role?: string;
|
|
50
|
+
team?: string;
|
|
51
|
+
provider: string | string[];
|
|
52
|
+
working_directory?: string;
|
|
53
|
+
description?: string;
|
|
54
|
+
specialties?: string[];
|
|
55
|
+
capabilities?: string[];
|
|
56
|
+
skills?: SkillsConfig;
|
|
57
|
+
inline?: {
|
|
58
|
+
type?: 'agent';
|
|
59
|
+
model?: string;
|
|
60
|
+
system_prompt?: string;
|
|
61
|
+
prompt?: string;
|
|
62
|
+
layout?: string | {
|
|
63
|
+
id: string;
|
|
64
|
+
props?: Record<string, unknown>;
|
|
65
|
+
};
|
|
66
|
+
version?: string;
|
|
67
|
+
dependencies?: string[];
|
|
68
|
+
documents?: Record<string, string>;
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
options?: {
|
|
72
|
+
query?: string[] | Record<string, string[]>;
|
|
73
|
+
execute?: string[] | Record<string, string[]>;
|
|
74
|
+
};
|
|
75
|
+
remote?: {
|
|
76
|
+
type: string;
|
|
77
|
+
url: string;
|
|
78
|
+
apiKey?: string;
|
|
79
|
+
agentId?: string;
|
|
80
|
+
timeoutMs?: number;
|
|
81
|
+
[key: string]: unknown;
|
|
82
|
+
};
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
export interface SkillResolutionResult {
|
|
86
|
+
name: string;
|
|
87
|
+
definition: SkillDefinition;
|
|
88
|
+
dependencies?: SkillResolutionResult[];
|
|
89
|
+
sourcePath: string;
|
|
90
|
+
}
|
|
91
|
+
export interface SkillParserOptions {
|
|
92
|
+
validationMode?: 'strict' | 'lenient';
|
|
93
|
+
loadContent?: boolean;
|
|
94
|
+
resolveDependencies?: boolean;
|
|
95
|
+
searchPaths?: string[];
|
|
96
|
+
cache?: boolean;
|
|
97
|
+
}
|
|
98
|
+
export interface SkillValidationError {
|
|
99
|
+
skillName: string;
|
|
100
|
+
field: string;
|
|
101
|
+
message: string;
|
|
102
|
+
expected?: string;
|
|
103
|
+
actual?: unknown;
|
|
104
|
+
}
|
|
105
|
+
export interface SkillValidationResult {
|
|
106
|
+
valid: boolean;
|
|
107
|
+
errors: SkillValidationError[];
|
|
108
|
+
warnings?: SkillValidationError[];
|
|
109
|
+
}
|
|
110
|
+
export declare class SkillLoadError extends Error {
|
|
111
|
+
readonly skillName?: string | undefined;
|
|
112
|
+
readonly cause?: Error | undefined;
|
|
113
|
+
constructor(message: string, skillName?: string | undefined, cause?: Error | undefined);
|
|
114
|
+
}
|
|
115
|
+
export declare class SkillNotFoundError extends Error {
|
|
116
|
+
readonly skillName: string;
|
|
117
|
+
readonly searchPaths: string[];
|
|
118
|
+
constructor(skillName: string, searchPaths: string[]);
|
|
119
|
+
}
|
|
120
|
+
export declare class SkillDependencyError extends Error {
|
|
121
|
+
readonly skillName: string;
|
|
122
|
+
readonly missingDependencies: string[];
|
|
123
|
+
constructor(skillName: string, missingDependencies: string[]);
|
|
124
|
+
}
|
|
125
|
+
export declare class SkillVersionMismatchError extends Error {
|
|
126
|
+
readonly skillName: string;
|
|
127
|
+
readonly requiredVersion: string;
|
|
128
|
+
readonly foundVersion: string;
|
|
129
|
+
constructor(skillName: string, requiredVersion: string, foundVersion: string);
|
|
130
|
+
}
|
|
131
|
+
export interface SkillManifest {
|
|
132
|
+
metadata: SkillMetadata;
|
|
133
|
+
files: {
|
|
134
|
+
main: string;
|
|
135
|
+
resources?: string[];
|
|
136
|
+
};
|
|
137
|
+
checksum?: string;
|
|
138
|
+
signature?: string;
|
|
139
|
+
build?: {
|
|
140
|
+
timestamp: string;
|
|
141
|
+
builder?: string;
|
|
142
|
+
[key: string]: unknown;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SkillVersionMismatchError = exports.SkillDependencyError = exports.SkillNotFoundError = exports.SkillLoadError = void 0;
|
|
4
|
+
class SkillLoadError extends Error {
|
|
5
|
+
constructor(message, skillName, cause) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.skillName = skillName;
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
this.name = 'SkillLoadError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.SkillLoadError = SkillLoadError;
|
|
13
|
+
class SkillNotFoundError extends Error {
|
|
14
|
+
constructor(skillName, searchPaths) {
|
|
15
|
+
super(`Skill "${skillName}" not found in paths: ${searchPaths.join(', ')}`);
|
|
16
|
+
this.skillName = skillName;
|
|
17
|
+
this.searchPaths = searchPaths;
|
|
18
|
+
this.name = 'SkillNotFoundError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.SkillNotFoundError = SkillNotFoundError;
|
|
22
|
+
class SkillDependencyError extends Error {
|
|
23
|
+
constructor(skillName, missingDependencies) {
|
|
24
|
+
super(`Skill "${skillName}" missing dependencies: ${missingDependencies.join(', ')}`);
|
|
25
|
+
this.skillName = skillName;
|
|
26
|
+
this.missingDependencies = missingDependencies;
|
|
27
|
+
this.name = 'SkillDependencyError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.SkillDependencyError = SkillDependencyError;
|
|
31
|
+
class SkillVersionMismatchError extends Error {
|
|
32
|
+
constructor(skillName, requiredVersion, foundVersion) {
|
|
33
|
+
super(`Skill "${skillName}" version mismatch. Required: ${requiredVersion}, Found: ${foundVersion}`);
|
|
34
|
+
this.skillName = skillName;
|
|
35
|
+
this.requiredVersion = requiredVersion;
|
|
36
|
+
this.foundVersion = foundVersion;
|
|
37
|
+
this.name = 'SkillVersionMismatchError';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.SkillVersionMismatchError = SkillVersionMismatchError;
|
|
41
|
+
//# sourceMappingURL=skills.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.types.js","sourceRoot":"","sources":["../../src/schema/skills.types.ts"],"names":[],"mappings":";;;AAyRA,MAAa,cAAe,SAAQ,KAAK;IACvC,YACE,OAAe,EACC,SAAkB,EAClB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,cAAS,GAAT,SAAS,CAAS;QAClB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AATD,wCASC;AAKD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YACkB,SAAiB,EACjB,WAAqB;QAErC,KAAK,CAAC,UAAU,SAAS,yBAAyB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAH5D,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAU;QAGrC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AARD,gDAQC;AAKD,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YACkB,SAAiB,EACjB,mBAA6B;QAE7C,KAAK,CACH,UAAU,SAAS,2BAA2B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAC;QALc,cAAS,GAAT,SAAS,CAAQ;QACjB,wBAAmB,GAAnB,mBAAmB,CAAU;QAK7C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAVD,oDAUC;AAKD,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YACkB,SAAiB,EACjB,eAAuB,EACvB,YAAoB;QAEpC,KAAK,CACH,UAAU,SAAS,iCAAiC,eAAe,YAAY,YAAY,EAAE,CAC9F,CAAC;QANc,cAAS,GAAT,SAAS,CAAQ;QACjB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QAKpC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAXD,8DAWC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./layout-renderer.service"), exports);
|
|
18
|
+
__exportStar(require("./props-validator.service"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,4DAA0C;AAC1C,4DAA0C"}
|