@hashgraphonline/conversational-agent
Version:
Hashgraph Online conversational AI agent implementing HCS-10 communication, HCS-2 registries, and content inscription on Hedera. https://hol.org
81 lines (73 loc) • 1.74 kB
text/typescript
import type { ToolMetadata } from '../../core/tool-registry';
import { EntityFormat } from '../formatters/types';
export enum EntityType {
TOPIC = EntityFormat.TOPIC_ID,
TOKEN = EntityFormat.TOKEN_ID,
NFT = EntityFormat.TOKEN_ID,
ACCOUNT = EntityFormat.ACCOUNT_ID,
INSCRIPTION = EntityFormat.HRL,
}
export interface EntityHint {
type: EntityType;
value: string;
confidence: number;
source: 'user' | 'llm' | 'cached';
}
export interface ConversionRecord {
originalValue: string;
convertedValue: string;
sourceFormat: string;
targetFormat: string;
converterUsed: string;
timestamp: Date;
context: Record<string, unknown>;
}
export interface ResolutionContext {
toolMetadata?: ToolMetadata;
userMessage: string;
entityHints: EntityHint[];
networkType: string;
conversionHistory: ConversionRecord[];
sessionId: string;
}
/**
* Builder for creating and modifying resolution contexts
*/
export class ResolutionContextBuilder {
/**
* Create initial context from user message and session ID
*/
static fromMessage(message: string, sessionId: string): ResolutionContext {
return {
userMessage: message,
sessionId,
entityHints: [],
networkType: 'testnet',
conversionHistory: [],
};
}
/**
* Add tool metadata to existing context
*/
static withToolContext(
context: ResolutionContext,
toolMetadata: ToolMetadata
): ResolutionContext {
return {
...context,
toolMetadata,
};
}
/**
* Add entity hints to existing context
*/
static withEntityHints(
context: ResolutionContext,
hints: EntityHint[]
): ResolutionContext {
return {
...context,
entityHints: [...hints],
};
}
}