@sowonai/crewx-sdk 0.8.0-rc.12 → 0.8.0-rc.13
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.
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { ISkillRuntime, IProgressiveSkillLoader, IClaudeSkillAdapter, SkillExecutionContext, SkillExecutionResult, SkillLoadOptions, SkillResolutionResult, SkillCacheStats, SkillRuntimeInfo, RuntimeRequirementsValidator, ProgressiveDisclosureConfig } from '../types/skill-runtime.types';
|
|
3
|
+
import { SkillMetadata, SkillDefinition, SkillValidationResult, AgentDefinition } from '../schema/skills.types';
|
|
4
|
+
export declare class SkillRuntime extends EventEmitter implements ISkillRuntime {
|
|
5
|
+
private readonly progressiveLoader;
|
|
6
|
+
private readonly claudeAdapter;
|
|
7
|
+
private readonly runtimeValidator;
|
|
8
|
+
private readonly config;
|
|
9
|
+
private startTime;
|
|
10
|
+
private skillsCache;
|
|
11
|
+
private contentCache;
|
|
12
|
+
private activeExecutions;
|
|
13
|
+
private cacheStats;
|
|
14
|
+
constructor(progressiveLoader: IProgressiveSkillLoader, claudeAdapter: IClaudeSkillAdapter, runtimeValidator: RuntimeRequirementsValidator, config?: Partial<ProgressiveDisclosureConfig>);
|
|
15
|
+
loadSkills(options?: SkillLoadOptions): Promise<SkillMetadata[]>;
|
|
16
|
+
validateSkill(skillName: string): Promise<SkillValidationResult>;
|
|
17
|
+
prepareContext(skillName: string, agentConfig: AgentDefinition, options?: Partial<SkillExecutionContext>): Promise<SkillExecutionContext>;
|
|
18
|
+
executeSkill(context: SkillExecutionContext, input: string): Promise<SkillExecutionResult>;
|
|
19
|
+
cleanup(context: SkillExecutionContext): Promise<void>;
|
|
20
|
+
listAvailableSkills(): Promise<string[]>;
|
|
21
|
+
getSkillMetadata(skillName: string): Promise<SkillMetadata | null>;
|
|
22
|
+
getSkillDefinition(skillName: string): Promise<SkillDefinition | null>;
|
|
23
|
+
resolveDependencies(skillName: string): Promise<SkillResolutionResult>;
|
|
24
|
+
clearCache(): Promise<void>;
|
|
25
|
+
getCacheStats(): SkillCacheStats;
|
|
26
|
+
getRuntimeInfo(): SkillRuntimeInfo;
|
|
27
|
+
shutdown(): Promise<void>;
|
|
28
|
+
private initializeCacheStats;
|
|
29
|
+
private setupCacheCleanup;
|
|
30
|
+
private applyFilters;
|
|
31
|
+
private validateMetadataStructure;
|
|
32
|
+
private validateDependencies;
|
|
33
|
+
private validateRuntimeRequirements;
|
|
34
|
+
private buildExecutionPrompt;
|
|
35
|
+
private executeWithAIProvider;
|
|
36
|
+
private generateExecutionId;
|
|
37
|
+
private getMemoryUsage;
|
|
38
|
+
private getCacheHits;
|
|
39
|
+
private getCacheMisses;
|
|
40
|
+
private updateCacheStats;
|
|
41
|
+
private cleanupExpiredCache;
|
|
42
|
+
}
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SkillRuntime = void 0;
|
|
7
|
+
const events_1 = require("events");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const skill_runtime_types_1 = require("../types/skill-runtime.types");
|
|
10
|
+
class SkillRuntime extends events_1.EventEmitter {
|
|
11
|
+
constructor(progressiveLoader, claudeAdapter, runtimeValidator, config) {
|
|
12
|
+
super();
|
|
13
|
+
this.skillsCache = new Map();
|
|
14
|
+
this.contentCache = new Map();
|
|
15
|
+
this.activeExecutions = new Map();
|
|
16
|
+
this.progressiveLoader = progressiveLoader;
|
|
17
|
+
this.claudeAdapter = claudeAdapter;
|
|
18
|
+
this.runtimeValidator = runtimeValidator;
|
|
19
|
+
this.startTime = new Date();
|
|
20
|
+
this.config = {
|
|
21
|
+
enabled: true,
|
|
22
|
+
metadataCacheTTL: 30 * 60 * 1000,
|
|
23
|
+
contentCacheTTL: 60 * 60 * 1000,
|
|
24
|
+
maxPreloadSkills: 10,
|
|
25
|
+
preloadStrategy: 'recent',
|
|
26
|
+
contentLoadThreshold: 50,
|
|
27
|
+
...config
|
|
28
|
+
};
|
|
29
|
+
this.cacheStats = this.initializeCacheStats();
|
|
30
|
+
this.setupCacheCleanup();
|
|
31
|
+
}
|
|
32
|
+
async loadSkills(options) {
|
|
33
|
+
const startTime = Date.now();
|
|
34
|
+
try {
|
|
35
|
+
const skillPaths = options?.searchPaths || [];
|
|
36
|
+
const metadata = await this.progressiveLoader.loadMetadata(skillPaths);
|
|
37
|
+
const filteredMetadata = this.applyFilters(metadata, options?.filters);
|
|
38
|
+
for (const meta of filteredMetadata) {
|
|
39
|
+
this.skillsCache.set(meta.name, meta);
|
|
40
|
+
}
|
|
41
|
+
for (const meta of filteredMetadata) {
|
|
42
|
+
this.emit('skill:loaded', { skillName: meta.name, metadata: meta });
|
|
43
|
+
}
|
|
44
|
+
this.updateCacheStats();
|
|
45
|
+
console.log(`Loaded ${filteredMetadata.length} skills in ${Date.now() - startTime}ms`);
|
|
46
|
+
return filteredMetadata;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new skill_runtime_types_1.ProgressiveLoadingError(`Failed to load skills: ${error.message}`, undefined, error);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async validateSkill(skillName) {
|
|
53
|
+
try {
|
|
54
|
+
const metadata = await this.getSkillMetadata(skillName);
|
|
55
|
+
if (!metadata) {
|
|
56
|
+
return {
|
|
57
|
+
valid: false,
|
|
58
|
+
errors: [{
|
|
59
|
+
skillName,
|
|
60
|
+
field: 'name',
|
|
61
|
+
message: `Skill "${skillName}" not found`,
|
|
62
|
+
actual: skillName
|
|
63
|
+
}]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const errors = this.validateMetadataStructure(metadata);
|
|
67
|
+
if (metadata.dependencies) {
|
|
68
|
+
const depErrors = await this.validateDependencies(metadata.dependencies);
|
|
69
|
+
errors.push(...depErrors);
|
|
70
|
+
}
|
|
71
|
+
const result = {
|
|
72
|
+
valid: errors.length === 0,
|
|
73
|
+
errors
|
|
74
|
+
};
|
|
75
|
+
this.emit('skill:validated', { skillName, result });
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
throw new skill_runtime_types_1.SkillValidationError(`Validation failed for skill "${skillName}"`, [{ skillName, field: 'validation', message: error.message }], skillName);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async prepareContext(skillName, agentConfig, options) {
|
|
83
|
+
const executionId = this.generateExecutionId();
|
|
84
|
+
try {
|
|
85
|
+
const metadata = await this.getSkillMetadata(skillName);
|
|
86
|
+
if (!metadata) {
|
|
87
|
+
throw new skill_runtime_types_1.SkillContextError(`Skill "${skillName}" not found`, skillName);
|
|
88
|
+
}
|
|
89
|
+
const definition = await this.getSkillDefinition(skillName);
|
|
90
|
+
const validation = await this.validateSkill(skillName);
|
|
91
|
+
if (!validation.valid) {
|
|
92
|
+
throw new skill_runtime_types_1.SkillValidationError(`Skill "${skillName}" failed validation`, validation.errors, skillName);
|
|
93
|
+
}
|
|
94
|
+
await this.validateRuntimeRequirements(metadata);
|
|
95
|
+
const context = {
|
|
96
|
+
skillName,
|
|
97
|
+
skillVersion: metadata.version,
|
|
98
|
+
workingDirectory: options?.workingDirectory || process.cwd(),
|
|
99
|
+
environment: options?.environment || process.env,
|
|
100
|
+
timeout: options?.timeout || 30000,
|
|
101
|
+
runtimeRequirements: metadata.runtime || {},
|
|
102
|
+
configuration: {
|
|
103
|
+
metadata,
|
|
104
|
+
content: definition?.content,
|
|
105
|
+
agentConfig
|
|
106
|
+
},
|
|
107
|
+
options: {
|
|
108
|
+
validationMode: options?.options?.validationMode || 'lenient',
|
|
109
|
+
progressiveLoading: options?.options?.progressiveLoading ?? true,
|
|
110
|
+
cacheEnabled: options?.options?.cacheEnabled ?? true
|
|
111
|
+
},
|
|
112
|
+
executionId,
|
|
113
|
+
startTime: new Date()
|
|
114
|
+
};
|
|
115
|
+
this.activeExecutions.set(executionId, context);
|
|
116
|
+
return context;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
throw new skill_runtime_types_1.SkillContextError(`Failed to prepare context for skill "${skillName}": ${error.message}`, skillName, error);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async executeSkill(context, input) {
|
|
123
|
+
const startTime = Date.now();
|
|
124
|
+
try {
|
|
125
|
+
if (!context.configuration.content) {
|
|
126
|
+
const definition = await this.progressiveLoader.loadFullContent(context.skillName);
|
|
127
|
+
context.configuration.content = definition.content;
|
|
128
|
+
}
|
|
129
|
+
const prompt = this.buildExecutionPrompt(context, input);
|
|
130
|
+
const output = await this.executeWithAIProvider(context, prompt);
|
|
131
|
+
const executionTime = Date.now() - startTime;
|
|
132
|
+
const memoryUsage = this.getMemoryUsage();
|
|
133
|
+
const result = {
|
|
134
|
+
success: true,
|
|
135
|
+
output,
|
|
136
|
+
metadata: {
|
|
137
|
+
executionId: context.executionId,
|
|
138
|
+
executionTime,
|
|
139
|
+
memoryUsage,
|
|
140
|
+
dependenciesUsed: context.configuration.metadata.dependencies || [],
|
|
141
|
+
cacheHits: this.getCacheHits(),
|
|
142
|
+
cacheMisses: this.getCacheMisses()
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
this.emit('skill:executed', { skillName: context.skillName, result });
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
const result = {
|
|
150
|
+
success: false,
|
|
151
|
+
error: error,
|
|
152
|
+
metadata: {
|
|
153
|
+
executionId: context.executionId,
|
|
154
|
+
executionTime: Date.now() - startTime,
|
|
155
|
+
dependenciesUsed: context.configuration.metadata.dependencies || [],
|
|
156
|
+
cacheHits: this.getCacheHits(),
|
|
157
|
+
cacheMisses: this.getCacheMisses()
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
this.emit('skill:error', {
|
|
161
|
+
stage: 'execute',
|
|
162
|
+
skillName: context.skillName,
|
|
163
|
+
executionId: context.executionId,
|
|
164
|
+
error: error,
|
|
165
|
+
recoverable: true,
|
|
166
|
+
suggestions: ['Check skill content format', 'Verify runtime requirements'],
|
|
167
|
+
timestamp: new Date()
|
|
168
|
+
});
|
|
169
|
+
throw new skill_runtime_types_1.SkillExecutionError(`Skill execution failed: ${error.message}`, context.skillName, context.executionId, error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async cleanup(context) {
|
|
173
|
+
try {
|
|
174
|
+
this.activeExecutions.delete(context.executionId);
|
|
175
|
+
this.updateCacheStats();
|
|
176
|
+
if (!context.options.cacheEnabled) {
|
|
177
|
+
this.contentCache.delete(context.skillName);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
console.warn(`Cleanup failed for execution ${context.executionId}:`, error);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async listAvailableSkills() {
|
|
185
|
+
return Array.from(this.skillsCache.keys());
|
|
186
|
+
}
|
|
187
|
+
async getSkillMetadata(skillName) {
|
|
188
|
+
if (this.skillsCache.has(skillName)) {
|
|
189
|
+
return this.skillsCache.get(skillName);
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
const metadata = await this.progressiveLoader.loadMetadata([path_1.default.dirname(skillName)]);
|
|
193
|
+
const skill = metadata.find(m => m.name === skillName);
|
|
194
|
+
if (skill) {
|
|
195
|
+
this.skillsCache.set(skillName, skill);
|
|
196
|
+
return skill;
|
|
197
|
+
}
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.warn(`Failed to load metadata for skill "${skillName}":`, error);
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async getSkillDefinition(skillName) {
|
|
206
|
+
if (this.contentCache.has(skillName)) {
|
|
207
|
+
return this.contentCache.get(skillName);
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
const definition = await this.progressiveLoader.loadFullContent(skillName);
|
|
211
|
+
this.contentCache.set(skillName, definition);
|
|
212
|
+
return definition;
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
console.warn(`Failed to load definition for skill "${skillName}":`, error);
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async resolveDependencies(skillName) {
|
|
220
|
+
const visited = new Set();
|
|
221
|
+
const resolve = async (name) => {
|
|
222
|
+
if (visited.has(name)) {
|
|
223
|
+
throw new skill_runtime_types_1.SkillRuntimeError(`Circular dependency detected: ${name}`, 'validate', name);
|
|
224
|
+
}
|
|
225
|
+
visited.add(name);
|
|
226
|
+
const definition = await this.getSkillDefinition(name);
|
|
227
|
+
if (!definition) {
|
|
228
|
+
throw new skill_runtime_types_1.SkillRuntimeError(`Skill "${name}" not found during dependency resolution`, 'validate', name);
|
|
229
|
+
}
|
|
230
|
+
const dependencies = [];
|
|
231
|
+
if (definition.metadata.dependencies) {
|
|
232
|
+
for (const depName of definition.metadata.dependencies) {
|
|
233
|
+
const dep = await resolve(depName);
|
|
234
|
+
dependencies.push(dep);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
name,
|
|
239
|
+
definition,
|
|
240
|
+
dependencies,
|
|
241
|
+
sourcePath: definition.filePath || '',
|
|
242
|
+
metadata: {
|
|
243
|
+
resolvedAt: new Date(),
|
|
244
|
+
version: definition.metadata.version,
|
|
245
|
+
dependenciesCount: dependencies.length
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
return resolve(skillName);
|
|
250
|
+
}
|
|
251
|
+
async clearCache() {
|
|
252
|
+
this.skillsCache.clear();
|
|
253
|
+
this.contentCache.clear();
|
|
254
|
+
this.cacheStats = this.initializeCacheStats();
|
|
255
|
+
this.emit('cache:cleared', {});
|
|
256
|
+
}
|
|
257
|
+
getCacheStats() {
|
|
258
|
+
this.updateCacheStats();
|
|
259
|
+
return { ...this.cacheStats };
|
|
260
|
+
}
|
|
261
|
+
getRuntimeInfo() {
|
|
262
|
+
return {
|
|
263
|
+
version: '1.0.0',
|
|
264
|
+
startTime: this.startTime,
|
|
265
|
+
skillsLoaded: this.skillsCache.size,
|
|
266
|
+
uptime: Date.now() - this.startTime.getTime(),
|
|
267
|
+
memoryUsage: process.memoryUsage()
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
async shutdown() {
|
|
271
|
+
try {
|
|
272
|
+
for (const context of this.activeExecutions.values()) {
|
|
273
|
+
await this.cleanup(context);
|
|
274
|
+
}
|
|
275
|
+
await this.clearCache();
|
|
276
|
+
this.removeAllListeners();
|
|
277
|
+
this.emit('runtime:shutdown', {});
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
console.error('Error during shutdown:', error);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
initializeCacheStats() {
|
|
284
|
+
return {
|
|
285
|
+
metadataCache: { count: 0, size: 0, hitRate: 0 },
|
|
286
|
+
contentCache: { count: 0, size: 0, hitRate: 0 },
|
|
287
|
+
total: { size: 0, hitRate: 0 }
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
setupCacheCleanup() {
|
|
291
|
+
setInterval(() => {
|
|
292
|
+
this.cleanupExpiredCache();
|
|
293
|
+
}, this.config.metadataCacheTTL);
|
|
294
|
+
}
|
|
295
|
+
applyFilters(metadata, filters) {
|
|
296
|
+
if (!filters)
|
|
297
|
+
return metadata;
|
|
298
|
+
let filtered = metadata;
|
|
299
|
+
if (filters.include?.length) {
|
|
300
|
+
filtered = filtered.filter(meta => filters.include.includes(meta.name));
|
|
301
|
+
}
|
|
302
|
+
if (filters.exclude?.length) {
|
|
303
|
+
filtered = filtered.filter(meta => !filters.exclude.includes(meta.name));
|
|
304
|
+
}
|
|
305
|
+
return filtered;
|
|
306
|
+
}
|
|
307
|
+
validateMetadataStructure(metadata) {
|
|
308
|
+
const errors = [];
|
|
309
|
+
if (!metadata.name || !metadata.name.trim()) {
|
|
310
|
+
errors.push({
|
|
311
|
+
skillName: metadata.name || 'unknown',
|
|
312
|
+
field: 'name',
|
|
313
|
+
message: 'Skill name is required',
|
|
314
|
+
actual: metadata.name
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
if (!metadata.description || !metadata.description.trim()) {
|
|
318
|
+
errors.push({
|
|
319
|
+
skillName: metadata.name,
|
|
320
|
+
field: 'description',
|
|
321
|
+
message: 'Skill description is required',
|
|
322
|
+
actual: metadata.description
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
if (!metadata.version || !/^\d+\.\d+\.\d+$/.test(metadata.version)) {
|
|
326
|
+
errors.push({
|
|
327
|
+
skillName: metadata.name,
|
|
328
|
+
field: 'version',
|
|
329
|
+
message: 'Semantic version is required (e.g., "1.0.0")',
|
|
330
|
+
actual: metadata.version
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
return errors;
|
|
334
|
+
}
|
|
335
|
+
async validateDependencies(dependencies) {
|
|
336
|
+
const errors = [];
|
|
337
|
+
for (const dep of dependencies) {
|
|
338
|
+
try {
|
|
339
|
+
const metadata = await this.getSkillMetadata(dep);
|
|
340
|
+
if (!metadata) {
|
|
341
|
+
errors.push({
|
|
342
|
+
skillName: dep,
|
|
343
|
+
field: 'dependency',
|
|
344
|
+
message: `Dependency "${dep}" not found`,
|
|
345
|
+
actual: dep
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
errors.push({
|
|
351
|
+
skillName: dep,
|
|
352
|
+
field: 'dependency',
|
|
353
|
+
message: `Failed to validate dependency "${dep}": ${error.message}`,
|
|
354
|
+
actual: dep
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return errors;
|
|
359
|
+
}
|
|
360
|
+
async validateRuntimeRequirements(metadata) {
|
|
361
|
+
if (!metadata.runtime)
|
|
362
|
+
return;
|
|
363
|
+
const requirements = metadata.runtime;
|
|
364
|
+
if (requirements.python) {
|
|
365
|
+
const isValid = await this.runtimeValidator.validatePython(requirements.python);
|
|
366
|
+
if (!isValid) {
|
|
367
|
+
throw new skill_runtime_types_1.SkillContextError(`Python requirement not met: ${requirements.python}`, metadata.name);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (requirements.node) {
|
|
371
|
+
const isValid = await this.runtimeValidator.validateNode(requirements.node);
|
|
372
|
+
if (!isValid) {
|
|
373
|
+
throw new skill_runtime_types_1.SkillContextError(`Node.js requirement not met: ${requirements.node}`, metadata.name);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if (requirements.docker) {
|
|
377
|
+
const isValid = await this.runtimeValidator.validateDocker();
|
|
378
|
+
if (!isValid) {
|
|
379
|
+
throw new skill_runtime_types_1.SkillContextError('Docker requirement not met', metadata.name);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
if (requirements.memory) {
|
|
383
|
+
const isValid = await this.runtimeValidator.validateMemory(requirements.memory);
|
|
384
|
+
if (!isValid) {
|
|
385
|
+
throw new skill_runtime_types_1.SkillContextError(`Memory requirement not met: ${requirements.memory}`, metadata.name);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
buildExecutionPrompt(context, input) {
|
|
390
|
+
const content = context.configuration.content;
|
|
391
|
+
if (!content) {
|
|
392
|
+
throw new skill_runtime_types_1.SkillContextError('Skill content not loaded', context.skillName);
|
|
393
|
+
}
|
|
394
|
+
let prompt = '';
|
|
395
|
+
if (content.role) {
|
|
396
|
+
prompt += `## Role\n${content.role}\n\n`;
|
|
397
|
+
}
|
|
398
|
+
if (content.task) {
|
|
399
|
+
prompt += `## Task\n${content.task}\n\n`;
|
|
400
|
+
}
|
|
401
|
+
if (content.instructions) {
|
|
402
|
+
prompt += `## Instructions\n${content.instructions}\n\n`;
|
|
403
|
+
}
|
|
404
|
+
prompt += `## User Input\n${input}`;
|
|
405
|
+
return prompt;
|
|
406
|
+
}
|
|
407
|
+
async executeWithAIProvider(context, prompt) {
|
|
408
|
+
return `[Skill: ${context.skillName}] Executed with prompt: ${prompt.substring(0, 100)}...`;
|
|
409
|
+
}
|
|
410
|
+
generateExecutionId() {
|
|
411
|
+
return `exec_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
412
|
+
}
|
|
413
|
+
getMemoryUsage() {
|
|
414
|
+
return process.memoryUsage().heapUsed;
|
|
415
|
+
}
|
|
416
|
+
getCacheHits() {
|
|
417
|
+
return 0;
|
|
418
|
+
}
|
|
419
|
+
getCacheMisses() {
|
|
420
|
+
return 0;
|
|
421
|
+
}
|
|
422
|
+
updateCacheStats() {
|
|
423
|
+
this.cacheStats.metadataCache.count = this.skillsCache.size;
|
|
424
|
+
this.cacheStats.contentCache.count = this.contentCache.size;
|
|
425
|
+
this.cacheStats.metadataCache.size = this.skillsCache.size * 1024;
|
|
426
|
+
this.cacheStats.contentCache.size = this.contentCache.size * 10240;
|
|
427
|
+
this.cacheStats.total.size = this.cacheStats.metadataCache.size + this.cacheStats.contentCache.size;
|
|
428
|
+
}
|
|
429
|
+
cleanupExpiredCache() {
|
|
430
|
+
this.updateCacheStats();
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
exports.SkillRuntime = SkillRuntime;
|
|
434
|
+
//# sourceMappingURL=skill-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-runtime.js","sourceRoot":"","sources":["../../../src/skills/runtime/skill-runtime.ts"],"names":[],"mappings":"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"}
|