@hashgraphonline/conversational-agent
Version:
Hashgraph Online conversational AI agent implementing HCS-10 communication, HCS-2 registries, and content inscription on Hedera. https://hol.org
90 lines (79 loc) • 1.96 kB
text/typescript
/**
* Mock external tool wrapper functionality
* These are placeholders to satisfy import statements in test scripts
*/
import { z as _z } from 'zod';
export interface ExternalToolWrapper<T> {
name: string;
description: string;
schema: T;
}
export function wrapExternalToolWithRenderConfig<T>(
tool: { name: string; description: string; schema: T },
config: {
ui?: { label?: string; description?: string };
fieldConfigs?: Record<string, unknown>;
}
): ExternalToolWrapper<T> {
return {
name: tool.name,
description: config.ui?.description || tool.description,
schema: tool.schema
};
}
export const renderConfigs = {
text: (label: string, placeholder?: string, help?: string) => ({
type: 'text',
label,
placeholder,
help
}),
number: (label: string, min?: number, max?: number, help?: string) => ({
type: 'number',
label,
min,
max,
help
}),
accountId: (label: string) => ({
type: 'accountId',
label,
placeholder: '0.0.12345'
}),
checkbox: (label: string, help?: string) => ({
type: 'checkbox',
label,
help
}),
currency: (label: string, currency: string, min?: number, max?: number) => ({
type: 'currency',
label,
currency,
min,
max
}),
tokenId: (label: string) => ({
type: 'tokenId',
label,
placeholder: '0.0.12345'
}),
select: (label: string, options: Array<{ value: string; label: string }>) => ({
type: 'select',
label,
options
})
};
export const hederaToolConfigs = {
hbarTransfer: () => ({
ui: {
label: 'HBAR Transfer',
description: 'Transfer HBAR between accounts'
},
fieldConfigs: {
fromAccountId: renderConfigs.accountId('From Account'),
toAccountId: renderConfigs.accountId('To Account'),
amount: renderConfigs.currency('Amount', 'HBAR', 0.00000001, 1000),
memo: renderConfigs.text('Memo', 'Optional memo')
}
})
};