@comake/skl-js-engine
Version:
Standard Knowledge Language Javascript Engine
45 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.globalCustomCapabilities = exports.customCapabilities = void 0;
// Global custom capabilities registry
class GlobalCustomCapabilitiesRegistry {
constructor() {
this.customCapabilities = new Map();
}
register(capabilityId, handler) {
this.customCapabilities.set(capabilityId, handler);
}
unregister(capabilityId) {
return this.customCapabilities.delete(capabilityId);
}
has(capabilityId) {
return this.customCapabilities.has(capabilityId);
}
async execute(capabilityId, args, sklEngine, capabilityConfig) {
const handler = this.customCapabilities.get(capabilityId);
if (!handler) {
throw new Error(`Custom capability '${capabilityId}' not found`);
}
return await handler(args, sklEngine, capabilityConfig);
}
getAll() {
return [...this.customCapabilities.keys()];
}
clear() {
this.customCapabilities.clear();
}
}
// Global instance
const globalCustomCapabilities = new GlobalCustomCapabilitiesRegistry();
exports.globalCustomCapabilities = globalCustomCapabilities;
// Export functions for external use
exports.customCapabilities = {
register(capabilityId, handler) {
globalCustomCapabilities.register(capabilityId, handler);
},
unregister: (capabilityId) => globalCustomCapabilities.unregister(capabilityId),
has: (capabilityId) => globalCustomCapabilities.has(capabilityId),
getAll: () => globalCustomCapabilities.getAll(),
clear: () => globalCustomCapabilities.clear()
};
//# sourceMappingURL=customCapabilities.js.map