File size: 739 Bytes
1f21206 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === 'object' && value !== null && !Array.isArray(value)
}
export function parseOpenAIToolArguments(value: unknown): Record<string, unknown> {
if (value == null || value === '') return {}
if (typeof value === 'string') {
try {
const parsed = JSON.parse(value) as unknown
return isRecord(parsed) ? parsed : { raw: parsed }
} catch {
return { raw: value }
}
}
if (isRecord(value)) return value
return { raw: value }
}
export function stringifyOpenAIToolArguments(value: unknown): string {
if (value == null || value === '') return ''
return typeof value === 'string' ? value : JSON.stringify(value)
}
|