UNPKG

@samchon/openapi

Version:

OpenAPI definitions and converters for 'typia' and 'nestia'.

61 lines (55 loc) 1.99 kB
import { OpenApi } from "../../OpenApi"; import { IClaudeSchema } from "../../structures/IClaudeSchema"; import { ILlmFunction } from "../../structures/ILlmFunction"; import { IOpenApiSchemaError } from "../../structures/IOpenApiSchemaError"; import { IResult } from "../../structures/IResult"; import { LlmSchemaV3_1Composer } from "./LlmSchemaV3_1Composer"; export namespace ClaudeSchemaComposer { /** * @internal */ export const IS_DEFS = true; export const parameters = (props: { config: IClaudeSchema.IConfig; components: OpenApi.IComponents; schema: OpenApi.IJsonSchema.IObject | OpenApi.IJsonSchema.IReference; accessor?: string; refAccessor?: string; }): IResult<IClaudeSchema.IParameters, IOpenApiSchemaError> => LlmSchemaV3_1Composer.parameters({ ...props, config: { reference: props.config.reference, constraint: true, }, }); export const schema = (props: { config: IClaudeSchema.IConfig; components: OpenApi.IComponents; $defs: Record<string, IClaudeSchema>; schema: OpenApi.IJsonSchema; accessor?: string; refAccessor?: string; }): IResult<IClaudeSchema, IOpenApiSchemaError> => LlmSchemaV3_1Composer.schema({ ...props, config: { reference: props.config.reference, constraint: true, }, }); export const separateParameters = (props: { parameters: IClaudeSchema.IParameters; predicate: (schema: IClaudeSchema) => boolean; convention?: (key: string, type: "llm" | "human") => string; }): ILlmFunction.ISeparated<"claude"> => { const separated: ILlmFunction.ISeparated<"3.1"> = LlmSchemaV3_1Composer.separateParameters(props); return separated as any as ILlmFunction.ISeparated<"claude">; }; export const invert = (props: { components: OpenApi.IComponents; schema: IClaudeSchema; $defs: Record<string, IClaudeSchema>; }): OpenApi.IJsonSchema => LlmSchemaV3_1Composer.invert(props); }