UNPKG

@hashgraphonline/standards-agent-kit

Version:

A modular SDK for building on-chain autonomous agents using Hashgraph Online Standards, including HCS-10 for agent discovery and communication. https://hol.org

142 lines (141 loc) 5.07 kB
import { ServerSigner, HederaAgentKit } from "hedera-agent-kit"; import { HCS10Builder } from "./standards-agent-kit.es5.js"; import { RegisterAgentTool } from "./standards-agent-kit.es11.js"; import { FindRegistrationsTool } from "./standards-agent-kit.es16.js"; import { InitiateConnectionTool } from "./standards-agent-kit.es13.js"; import { ListConnectionsTool } from "./standards-agent-kit.es14.js"; import { SendMessageToConnectionTool } from "./standards-agent-kit.es12.js"; import { CheckMessagesTool } from "./standards-agent-kit.es15.js"; import { ConnectionMonitorTool } from "./standards-agent-kit.es17.js"; import { ManageConnectionRequestsTool } from "./standards-agent-kit.es18.js"; import { AcceptConnectionRequestTool } from "./standards-agent-kit.es19.js"; import { RetrieveProfileTool } from "./standards-agent-kit.es20.js"; import { ListUnapprovedConnectionRequestsTool } from "./standards-agent-kit.es21.js"; import { OpenConvaiState } from "./standards-agent-kit.es41.js"; import { Logger } from "@hashgraphonline/standards-sdk"; import { ENV_FILE_PATH } from "./standards-agent-kit.es47.js"; const initializeStandardsAgentKit = async (options) => { const config = options?.clientConfig || {}; const operatorId = config.operatorId || process.env.HEDERA_OPERATOR_ID; const operatorPrivateKey = config.operatorKey || process.env.HEDERA_OPERATOR_KEY; const networkEnv = config.network || process.env.HEDERA_NETWORK || "testnet"; const shouldSilence = process.env.DISABLE_LOGGING === "true"; const logger = Logger.getInstance({ level: config.logLevel || "info", silent: shouldSilence }); let network; if (networkEnv === "mainnet") { network = "mainnet"; } else if (networkEnv === "testnet") { network = "testnet"; } else { logger.warn( `Unsupported network specified: '${networkEnv}'. Defaulting to 'testnet'.` ); network = "testnet"; } if (!operatorId || !operatorPrivateKey) { throw new Error( "Operator ID and private key must be provided either through options or environment variables." ); } const stateManager = options?.stateManager || new OpenConvaiState({ defaultEnvFilePath: ENV_FILE_PATH, defaultPrefix: "TODD" }); logger.info("State manager initialized"); const signer = new ServerSigner(operatorId, operatorPrivateKey, network); const hederaKit = new HederaAgentKit(signer); await hederaKit.initialize(); logger.info(`HederaAgentKit initialized for ${operatorId} on ${network}`); const hcs10Builder = new HCS10Builder(hederaKit, stateManager, { useEncryption: config.useEncryption, registryUrl: config.registryUrl, logLevel: config.logLevel }); let monitoringHederaKit; let monitoringHcs10Builder; if (options?.monitoringClient) { const monitoringSigner = new ServerSigner(operatorId, operatorPrivateKey, network); monitoringHederaKit = new HederaAgentKit(monitoringSigner); await monitoringHederaKit.initialize(); monitoringHcs10Builder = new HCS10Builder(monitoringHederaKit, stateManager, { useEncryption: config.useEncryption, registryUrl: config.registryUrl, logLevel: "error" }); logger.info("Monitoring client initialized"); } const tools = {}; tools.registerAgentTool = new RegisterAgentTool({ hederaKit, hcs10Builder, logger: void 0 }); if (options?.createAllTools) { tools.findRegistrationsTool = new FindRegistrationsTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.retrieveProfileTool = new RetrieveProfileTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.initiateConnectionTool = new InitiateConnectionTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.listConnectionsTool = new ListConnectionsTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.sendMessageToConnectionTool = new SendMessageToConnectionTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.checkMessagesTool = new CheckMessagesTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.connectionMonitorTool = new ConnectionMonitorTool({ hederaKit: monitoringHederaKit || hederaKit, hcs10Builder: monitoringHcs10Builder || hcs10Builder, logger: void 0 }); tools.manageConnectionRequestsTool = new ManageConnectionRequestsTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.acceptConnectionRequestTool = new AcceptConnectionRequestTool({ hederaKit, hcs10Builder, logger: void 0 }); tools.listUnapprovedConnectionRequestsTool = new ListUnapprovedConnectionRequestsTool({ hederaKit, hcs10Builder, logger: void 0 }); logger.info("All tools initialized"); } return { hederaKit, hcs10Builder, monitoringHederaKit, monitoringHcs10Builder, tools, stateManager }; }; export { initializeStandardsAgentKit }; //# sourceMappingURL=standards-agent-kit.es42.js.map