import { IJsonParseResult, ILlmApplication } from "@typia/interface"; import { LlmJson, LlmSchemaConverter } from "@typia/utils"; export const _llmApplicationFinalize = ( app: ILlmApplication.__IPrimitive, config?: Partial>, ): ILlmApplication => ({ ...app, config: { ...LlmSchemaConverter.getConfig(), validate: config?.validate ?? null, }, functions: app.functions.map((func) => ({ ...func, parse: (input: string): IJsonParseResult => LlmJson.parse(input, func.parameters), coerce: (input: unknown): unknown => LlmJson.coerce(input, func.parameters), validate: config?.validate?.[func.name] ?? func.validate, })), });