@hashgraphonline/standards-agent-plugin
Version:
Standards agent plugin for OpenConvAI functionality with HCS-10 tools
123 lines (122 loc) • 3.62 kB
JavaScript
import { BasePlugin } from "hedera-agent-kit";
import { OpenConvaiState, HCS10Builder, RegisterAgentTool, FindRegistrationsTool, RetrieveProfileTool, InitiateConnectionTool, ListConnectionsTool, SendMessageToConnectionTool, CheckMessagesTool, ConnectionMonitorTool, ManageConnectionRequestsTool, AcceptConnectionRequestTool, ListUnapprovedConnectionRequestsTool } from "@hashgraphonline/standards-agent-kit";
class OpenConvAIPlugin extends BasePlugin {
constructor() {
super(...arguments);
this.id = "openconvai-standards-agent-kit";
this.name = "OpenConvAI Standards Agent Kit Plugin";
this.description = "Comprehensive plugin providing all HCS-10 agent tools for registration, connections, and messaging";
this.version = "1.0.0";
this.author = "Hashgraph Online";
this.namespace = "openconvai";
this.tools = [];
}
async initialize(context) {
await super.initialize(context);
const hederaKit = context.config.hederaKit;
if (!hederaKit) {
this.context.logger.warn(
"HederaKit not found in context. OpenConvAI tools will not be available."
);
return;
}
try {
this.stateManager = context.stateManager || new OpenConvaiState();
this.initializeTools();
this.context.logger.info(
"OpenConvAI Standards Agent Kit Plugin initialized successfully"
);
} catch (error) {
this.context.logger.error(
"Failed to initialize OpenConvAI plugin:",
error
);
}
}
initializeTools() {
if (!this.stateManager) {
throw new Error("StateManager must be initialized before creating tools");
}
const hederaKit = this.context.config.hederaKit;
if (!hederaKit) {
throw new Error("HederaKit not found in context config");
}
const hcs10Builder = new HCS10Builder(hederaKit, this.stateManager);
this.tools = [
new RegisterAgentTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new FindRegistrationsTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new RetrieveProfileTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new InitiateConnectionTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new ListConnectionsTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new SendMessageToConnectionTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new CheckMessagesTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new ConnectionMonitorTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new ManageConnectionRequestsTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new AcceptConnectionRequestTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
}),
new ListUnapprovedConnectionRequestsTool({
hederaKit,
hcs10Builder,
logger: this.context.logger
})
];
}
getTools() {
return this.tools;
}
getStateManager() {
return this.stateManager;
}
async cleanup() {
this.tools = [];
delete this.stateManager;
if (this.context?.logger) {
this.context.logger.info(
"OpenConvAI Standards Agent Kit Plugin cleaned up"
);
}
}
}
export {
OpenConvAIPlugin
};
//# sourceMappingURL=index2.js.map