@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
JavaScript
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