@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
58 lines (57 loc) • 1.83 kB
JavaScript
import { ContentResolverRegistry } from "@hashgraphonline/standards-sdk";
async function resolveContent(input, providedMimeType, providedFileName) {
const trimmedInput = input.trim();
const resolver = ContentResolverRegistry.getResolver();
if (!resolver) {
return handleDirectContent(
trimmedInput,
providedMimeType,
providedFileName
);
}
const referenceId = resolver.extractReferenceId(trimmedInput);
if (referenceId) {
try {
const resolution = await resolver.resolveReference(referenceId);
return {
buffer: resolution.content,
mimeType: resolution.metadata?.mimeType || providedMimeType,
fileName: resolution.metadata?.fileName || providedFileName,
wasReference: true
};
} catch (error) {
const errorMsg = error instanceof Error ? error.message : "Unknown error resolving reference";
throw new Error(`Reference resolution failed: ${errorMsg}`);
}
}
return handleDirectContent(trimmedInput, providedMimeType, providedFileName);
}
function handleDirectContent(input, providedMimeType, providedFileName) {
const isValidBase64 = /^[A-Za-z0-9+/]*={0,2}$/.test(input);
if (isValidBase64) {
try {
const buffer2 = Buffer.from(input, "base64");
return {
buffer: buffer2,
mimeType: providedMimeType,
fileName: providedFileName,
wasReference: false
};
} catch (error) {
throw new Error(
"Failed to decode base64 data. Please ensure the data is properly encoded."
);
}
}
const buffer = Buffer.from(input, "utf8");
return {
buffer,
mimeType: providedMimeType || "text/plain",
fileName: providedFileName,
wasReference: false
};
}
export {
resolveContent
};
//# sourceMappingURL=standards-agent-kit.es52.js.map