@hashgraphonline/conversational-agent
Version:
Hashgraph Online conversational AI agent implementing HCS-10 communication, HCS-2 registries, and content inscription on Hedera
77 lines (75 loc) • 2.24 kB
TypeScript
import { ContentReference, ReferenceId } from '../types/content-reference';
import { ReferenceContextManager, ReferenceDisplayOptions } from './ReferenceContextManager';
import { Logger } from '@hashgraphonline/standards-sdk';
export interface ResponseProcessingOptions {
autoDisplayReferences?: boolean;
displayOptions?: ReferenceDisplayOptions;
includeReferenceInstructions?: boolean;
contextualizeReferences?: boolean;
}
export interface ProcessedResponse {
content: string;
hasReferences: boolean;
referenceCount: number;
contextIds: string[];
suggestedActions: string[];
}
export interface ReferenceDetectionResult {
hasReferences: boolean;
references: Array<{
reference: ContentReference;
position: number;
originalText: string;
}>;
plainReferences: Array<{
referenceId: ReferenceId;
position: number;
originalText: string;
}>;
}
/**
* Processes agent responses to detect and display content references
* Handles both structured references and plain reference IDs
*/
export declare class ReferenceResponseProcessor {
private contextManager;
private logger;
constructor(contextManager: ReferenceContextManager, logger: Logger);
/**
* Process an agent response to handle content references
*/
processResponse(responseContent: string, options?: ResponseProcessingOptions): Promise<ProcessedResponse>;
/**
* Detect references in response content
*/
private detectReferences;
/**
* Create a preview from content buffer
*/
private createPreviewFromContent;
/**
* Validate reference ID format
*/
private isValidReferenceId;
/**
* Get reference context statistics
*/
getContextStats(): {
activeReferences: number;
conversationTurn: number;
oldestReference: number | null;
mostRecentReference: number | null;
};
/**
* Validate all references in context
*/
validateAllReferences(): Promise<{
valid: number;
invalid: number;
removed: ReferenceId[];
}>;
/**
* Clean up old references
*/
cleanupOldReferences(maxAgeMs?: number): number;
}