UNPKG

agentlang

Version:

The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans

51 lines 1.82 kB
import { parseAndIntern } from './loader.js'; import { logger } from './logger.js'; import { isReservedName } from './util.js'; let OpenApiModules = undefined; export async function registerOpenApiModule(moduleName, handle) { if (OpenApiModules === undefined) { OpenApiModules = new Map(); } const m = new Map(Object.entries(handle.client)); const events = new Array(); m.forEach((v, k) => { if (v instanceof Function) { if (isReservedName(k)) { k = `_${k}`; } logger.debug(`OpenAPI event: ${moduleName}/${k}`); events.push(`event ${k} {parameters Any @optional, data Any @optional, config Any @optional}`); } }); await parseAndIntern(`module ${moduleName}\n${events.join('\n')}`); OpenApiModules.set(moduleName, handle); return moduleName; } export function isOpenApiModule(moduleName) { return OpenApiModules !== undefined && OpenApiModules.has(moduleName); } export async function invokeOpenApiEvent(moduleName, eventName, params) { if (OpenApiModules) { const handle = OpenApiModules.get(moduleName); if (handle) { const f = handle.client[eventName]; if (!f) { throw new Error(`No event ${eventName} found in ${moduleName}`); } else { const r = await f(params.parameters, params.data, params.config); return r.data; } } else { throw new Error(`No OpenAPI module found - ${moduleName}`); } } else { throw new Error(`OpenAPI module ${moduleName} not initialized`); } } export function isOpenApiEventInstance(eventInst) { return isOpenApiModule(eventInst.moduleName); } //# sourceMappingURL=openapi.js.map