{"version":3,"sources":["../src/kaia.plugin.ts"],"sourcesContent":["import { Chain, PluginBase, ToolBase, createTool } from \"@goat-sdk/core\";\nimport { EVMWalletClient } from \"@goat-sdk/wallet-evm\";\nimport \"dotenv/config\";\nimport { Packages } from \"@kaiachain/kaia-agent-kit\";\n\nexport class KaiaPlugin extends PluginBase<EVMWalletClient> {\n    private config: any;\n\n    constructor(config: any = {}) {\n        super(\"kaia\", []);\n        this.config = config;\n    }\n\n    // For EVM-specific plugin, we check if the chain is EVM compatible\n    supportsChain = (chain: Chain) => {\n        return chain.type === \"evm\";\n    };\n\n    getTools(walletClient: EVMWalletClient) {\n        const tools: ToolBase[] | Promise<ToolBase[]> = [];\n        const config = {\n            KAIA_KAIASCAN_API_KEY: this.config,\n        };\n\n        for (const pkg of Object.values(Packages)) {\n            const services = pkg.Services?.default || {};\n            const metadata = pkg.Metadata?.default || {};\n\n            for (const [serviceName, serviceFn] of Object.entries(services)) {\n                const meta = metadata[serviceName] || {};\n                const tool = {\n                    info: {\n                        name: meta.name,\n                        description: meta.description,\n                        parameters: meta.params,\n                    },\n                    handler: (parameters: unknown) =>\n                        (\n                            serviceFn as (\n                                params: unknown,\n                                config: unknown,\n                                client: EVMWalletClient\n                            ) => unknown\n                        )(parameters, config, walletClient),\n                };\n                tools.push(createTool(tool.info, tool.handler));\n            }\n        }\n\n        return tools;\n    }\n}\n\nexport function kaiaInstance() {\n    return new KaiaPlugin();\n}\n"],"mappings":";;;;AAAA,SAAgBA,YAAsBC,kBAAkB;AAExD,OAAO;AACP,SAASC,gBAAgB;AAElB,IAAMC,aAAN,cAAyBC,WAAAA;EALhC,OAKgCA;;;EACpBC;EAERC,YAAYD,SAAc,CAAC,GAAG;AAC1B,UAAM,QAAQ,CAAA,CAAE;AAChB,SAAKA,SAASA;EAClB;;EAGAE,gBAAgB,wBAACC,UAAAA;AACb,WAAOA,MAAMC,SAAS;EAC1B,GAFgB;EAIhBC,SAASC,cAA+B;AACpC,UAAMC,QAA0C,CAAA;AAChD,UAAMP,SAAS;MACXQ,uBAAuB,KAAKR;IAChC;AAEA,eAAWS,OAAOC,OAAOC,OAAOC,QAAAA,GAAW;AACvC,YAAMC,WAAWJ,IAAIK,UAAUC,WAAW,CAAC;AAC3C,YAAMC,WAAWP,IAAIQ,UAAUF,WAAW,CAAC;AAE3C,iBAAW,CAACG,aAAaC,SAAAA,KAAcT,OAAOU,QAAQP,QAAAA,GAAW;AAC7D,cAAMQ,OAAOL,SAASE,WAAAA,KAAgB,CAAC;AACvC,cAAMI,OAAO;UACTC,MAAM;YACFC,MAAMH,KAAKG;YACXC,aAAaJ,KAAKI;YAClBC,YAAYL,KAAKM;UACrB;UACAC,SAAS,wBAACF,eAEFP,UAKFO,YAAY1B,QAAQM,YAAAA,GAPjB;QAQb;AACAC,cAAMsB,KAAKC,WAAWR,KAAKC,MAAMD,KAAKM,OAAO,CAAA;MACjD;IACJ;AAEA,WAAOrB;EACX;AACJ;AAEO,SAASwB,eAAAA;AACZ,SAAO,IAAIjC,WAAAA;AACf;AAFgBiC;","names":["PluginBase","createTool","Packages","KaiaPlugin","PluginBase","config","constructor","supportsChain","chain","type","getTools","walletClient","tools","KAIA_KAIASCAN_API_KEY","pkg","Object","values","Packages","services","Services","default","metadata","Metadata","serviceName","serviceFn","entries","meta","tool","info","name","description","parameters","params","handler","push","createTool","kaiaInstance"]}