@mastra/core
Version:
82 lines (81 loc) • 1.92 kB
JavaScript
import { r as createTool } from "../tool-qGw4ZhYO.js";
import { z } from "zod/v4";
//#region src/integration/integration.ts
var Integration = class {
name = "Integration";
workflows;
constructor() {
this.workflows = {};
}
/**
* Workflows
*/
registerWorkflow(name, fn) {
if (this.workflows[name]) throw new Error(`Sync function "${name}" already registered`);
this.workflows[name] = fn;
}
listWorkflows({ serialized }) {
if (serialized) return Object.entries(this.workflows).reduce((acc, [k, v]) => {
return {
...acc,
[k]: { name: v.name }
};
}, {});
return this.workflows;
}
/**
* TOOLS
*/
listStaticTools(_params) {
throw new Error("Method not implemented.");
}
async listTools(_params) {
throw new Error("Method not implemented.");
}
async getApiClient() {
throw new Error("Method not implemented");
}
};
//#endregion
//#region src/integration/openapi-toolset.ts
var OpenAPIToolset = class {
authType = "API_KEY";
constructor() {}
get toolSchemas() {
return {};
}
get toolDocumentations() {
return {};
}
get baseClient() {
return {};
}
async getApiClient() {
throw new Error("API not implemented");
}
_generateIntegrationTools() {
const { client: _client, ...clientMethods } = this.baseClient;
const schemas = this.toolSchemas;
const documentations = this.toolDocumentations;
return Object.keys(clientMethods).reduce((acc, key) => {
const comment = documentations[key]?.comment;
const fallbackComment = `Execute ${key}`;
const tool = createTool({
id: key,
inputSchema: schemas[key] || z.object({}),
description: comment || fallbackComment,
execute: async (input) => {
const value = (await this.getApiClient())[key];
return value({ ...input });
}
});
return {
...acc,
[key]: tool
};
}, {});
}
};
//#endregion
export { Integration, OpenAPIToolset };
//# sourceMappingURL=index.js.map