@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.
61 lines (60 loc) • 2.12 kB
JavaScript
import { z } from "zod";
import { AIAgentCapability } from "@hashgraphonline/standards-sdk";
import { BaseHCS10QueryTool } from "./standards-agent-kit.es7.js";
import { NaturalLanguageMapper } from "./standards-agent-kit.es19.js";
const FindRegistrationsZodSchema = z.object({
accountId: z.string().optional().describe(
"Optional: Filter registrations by a specific Hedera account ID (e.g., 0.0.12345)."
),
tags: z.union([
z.array(z.nativeEnum(AIAgentCapability)),
z.array(z.string()),
z.string()
]).optional().transform((val) => {
if (!val) return void 0;
if (typeof val === "string") {
return NaturalLanguageMapper.parseCapabilities(val);
}
if (Array.isArray(val) && val.length > 0 && typeof val[0] === "string") {
return NaturalLanguageMapper.parseTagsOrCapabilities(val);
}
return val;
}).describe(
'Optional: Filter by capabilities/tags like "ai", "data", "analytics". Can be natural language terms or capability numbers.'
)
});
class FindRegistrationsTool extends BaseHCS10QueryTool {
constructor(params) {
super(params);
this.name = "find_registrations";
this.description = 'Searches the configured agent registry for HCS-10 agents. You can filter by account ID or tags/capabilities using natural language like "ai", "data processing", "analytics". Returns basic registration info.';
this.specificInputSchema = FindRegistrationsZodSchema;
}
async executeQuery({
accountId,
tags
}) {
const hcs10Builder = this.hcs10Builder;
const params = {};
if (accountId) {
params.accountId = accountId;
}
if (tags) {
params.tags = tags;
}
await hcs10Builder.findRegistrations(params);
const result = await hcs10Builder.execute();
if (result.success && "rawResult" in result && result.rawResult) {
const raw = result.rawResult;
return {
success: true,
data: raw.formattedOutput || raw.message || "Registrations searched"
};
}
return result;
}
}
export {
FindRegistrationsTool
};
//# sourceMappingURL=standards-agent-kit.es13.js.map