UNPKG

@agentica/core

Version:

Agentic AI Library specialized in LLM Function Calling

370 lines 163 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.assertMcpController = assertMcpController; const __typia_transform__assertGuard = __importStar(require("typia/lib/internal/_assertGuard.js")); const __typia_transform__accessExpressionAsString = __importStar(require("typia/lib/internal/_accessExpressionAsString.js")); const openapi_1 = require("@samchon/openapi"); const typia_1 = __importDefault(require("typia")); /** * Create an MCP controller with type assertion. * * Create an {@link IAgenticaController.IMcp} instance which represents * an MCP (Model Context Protocol) controller with LLM function calling * schemas and client connection. * * @param props Properties to create the MCP controller * @param props.name Name of the MCP implementation. * @param props.client Client connection to the MCP implementation. * @param props.model Model schema of the LLM function calling. * @param props.options Options to create the MCP controller. * @returns MCP LLM application instance * @author sunrabbit123 */ function assertMcpController(props) { return __awaiter(this, void 0, void 0, function* () { // for peerDependencies const { ListToolsResultSchema } = yield Promise.resolve().then(() => __importStar(require("@modelcontextprotocol/sdk/types.js"))); // get list of tools const { tools } = yield props.client.request({ method: "tools/list" }, ListToolsResultSchema); const application = openapi_1.McpLlm.application({ model: props.model, tools: (() => { const _io0 = input => "string" === typeof input.name && input.name.length <= 64 && (undefined === input.description || "string" === typeof input.description) && ("object" === typeof input.inputSchema && null !== input.inputSchema && _iu1(input.inputSchema)); const _io1 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (undefined === input.properties || "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties)) && (undefined === input.required || Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && (null !== input.additionalProperties && (undefined === input.additionalProperties || "boolean" === typeof input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && false === Array.isArray(input.additionalProperties) && _iu0(input.additionalProperties))) && (undefined === input.maxProperties || "number" === typeof input.maxProperties) && (undefined === input.minProperties || "number" === typeof input.minProperties) && "object" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.$defs || "object" === typeof input.$defs && null !== input.$defs && false === Array.isArray(input.$defs) && _io2(input.$defs)); const _io2 = input => Object.keys(input).every(key => { const value = input[key]; if (undefined === value) return true; return "object" === typeof value && null !== value && false === Array.isArray(value) && _iu0(value); }); const _io3 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (undefined === input.properties || "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties)) && (undefined === input.required || Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && (null !== input.additionalProperties && (undefined === input.additionalProperties || "boolean" === typeof input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && false === Array.isArray(input.additionalProperties) && _iu0(input.additionalProperties))) && (undefined === input.maxProperties || "number" === typeof input.maxProperties) && (undefined === input.minProperties || "number" === typeof input.minProperties) && "object" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io4 = input => Array.isArray(input.type) && input.type.every(elem => "string" === elem || "number" === elem || "boolean" === elem || "object" === elem || "integer" === elem || "array" === elem || "null" === elem) && (null === input["default"] || undefined === input["default"] || Array.isArray(input["default"])) && (undefined === input["enum"] || Array.isArray(input["enum"])) && ("string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]) && (undefined === input.nullable || "boolean" === typeof input.nullable) && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || "boolean" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || "boolean" === typeof input.exclusiveMaximum) && (undefined === input.format || "string" === typeof input.format) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (null !== input.items && (undefined === input.items || (Array.isArray(input.items) && input.items.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem)) || "object" === typeof input.items && null !== input.items && false === Array.isArray(input.items) && _iu0(input.items)))) && (undefined === input.prefixItems || Array.isArray(input.prefixItems) && input.prefixItems.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (null !== input.additionalItems && (undefined === input.additionalItems || "boolean" === typeof input.additionalItems || "object" === typeof input.additionalItems && null !== input.additionalItems && false === Array.isArray(input.additionalItems) && _iu0(input.additionalItems))) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && (null !== input.additionalProperties && (undefined === input.additionalProperties || "boolean" === typeof input.additionalProperties || "object" === typeof input.additionalProperties && null !== input.additionalProperties && false === Array.isArray(input.additionalProperties) && _iu0(input.additionalProperties))) && (undefined === input.properties || "object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) && _io2(input.properties)) && (undefined === input.required || Array.isArray(input.required) && input.required.every(elem => "string" === typeof elem)) && (undefined === input.maxProperties || "number" === typeof input.maxProperties) && (undefined === input.minProperties || "number" === typeof input.minProperties) && (Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io17(input.discriminator)) && (Array.isArray(input.anyOf) && input.anyOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))) && (Array.isArray(input.allOf) && input.allOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))) && "string" === typeof input.$ref; const _io5 = input => Object.keys(input).every(key => { const value = input[key]; if (undefined === value) return true; return true; }); const _io6 = input => ("string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]) && (undefined === input.nullable || "boolean" === typeof input.nullable) && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io7 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (null === input["default"] || undefined === input["default"] || "boolean" === typeof input["default"]) && (undefined === input["enum"] || Array.isArray(input["enum"]) && input["enum"].every(elem => null === elem || "boolean" === typeof elem)) && "boolean" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io8 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (null === input["default"] || undefined === input["default"] || "number" === typeof input["default"] && (Math.floor(input["default"]) === input["default"] && -9223372036854776000 <= input["default"] && input["default"] <= 9223372036854776000)) && (undefined === input["enum"] || Array.isArray(input["enum"]) && input["enum"].every(elem => null === elem || "number" === typeof elem)) && (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum && (Math.floor(input.exclusiveMinimum) === input.exclusiveMinimum && -9223372036854776000 <= input.exclusiveMinimum && input.exclusiveMinimum <= 9223372036854776000) || "boolean" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum && (Math.floor(input.exclusiveMaximum) === input.exclusiveMaximum && -9223372036854776000 <= input.exclusiveMaximum && input.exclusiveMaximum <= 9223372036854776000) || "boolean" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io9 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (null === input["default"] || undefined === input["default"] || "number" === typeof input["default"]) && (undefined === input["enum"] || Array.isArray(input["enum"]) && input["enum"].every(elem => null === elem || "number" === typeof elem)) && (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || "boolean" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || "boolean" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io10 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (null === input["default"] || undefined === input["default"] || "string" === typeof input["default"]) && (undefined === input["enum"] || Array.isArray(input["enum"]) && input["enum"].every(elem => null === elem || "string" === typeof elem)) && (undefined === input.format || "string" === typeof input.format) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io11 = input => (undefined === input.nullable || "boolean" === typeof input.nullable) && (null !== input.items && (undefined === input.items || (Array.isArray(input.items) && input.items.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem)) || "object" === typeof input.items && null !== input.items && false === Array.isArray(input.items) && _iu0(input.items)))) && (undefined === input.prefixItems || Array.isArray(input.prefixItems) && input.prefixItems.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (null !== input.additionalItems && (undefined === input.additionalItems || "boolean" === typeof input.additionalItems || "object" === typeof input.additionalItems && null !== input.additionalItems && false === Array.isArray(input.additionalItems) && _iu0(input.additionalItems))) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io12 = input => "string" === typeof input.$ref && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io13 = input => "string" === typeof input.$recursiveRef && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io14 = input => Array.isArray(input.allOf) && input.allOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem)) && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io15 = input => Array.isArray(input.anyOf) && input.anyOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem)) && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io16 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io17(input.discriminator)) && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true; const _io17 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io18(input.mapping)); const _io18 = input => Object.keys(input).every(key => { const value = input[key]; if (undefined === value) return true; return "string" === typeof value; }); const _io19 = input => (null === input["default"] || undefined === input["default"]) && "null" === input.type && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io20 = input => null !== input.type && undefined === input.type && true && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))); const _io21 = input => "string" === typeof input.$ref && (null !== input.examples && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _io5(input.examples)))) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.deprecated || "boolean" === typeof input.deprecated) && true && (undefined === input.$defs || "object" === typeof input.$defs && null !== input.$defs && false === Array.isArray(input.$defs) && _io2(input.$defs)); const _iu0 = input => (() => { if ("object" === input.type) return _io3(input); else if (Array.isArray(input.type) && input.type.every(elem => "string" === elem || "number" === elem || "boolean" === elem || "object" === elem || "integer" === elem || "array" === elem || "null" === elem)) return _io4(input); else if ("boolean" === input.type) return _io7(input); else if ("number" === input.type) return _io9(input); else if ("integer" === input.type) return _io8(input); else if ("string" === input.type) return _io10(input); else if ("array" === input.type) return _io11(input); else if (undefined !== input.$recursiveRef) return _io13(input); else if ("null" === input.type) return _io19(input); else return (() => { if (undefined !== input["const"]) return _io6(input); else if (undefined !== input.$ref) return _io12(input); else if (undefined !== input.allOf) return _io14(input); else if (undefined !== input.anyOf) return _io15(input); else if (undefined !== input.oneOf) return _io16(input); else return _io20(input); })(); })(); const _iu1 = input => (() => { if (undefined !== input.type) return _io1(input); else if (undefined !== input.$ref) return _io21(input); else return false; })(); const _ao0 = (input, _path, _exceptionable = true) => ("string" === typeof input.name && (input.name.length <= 64 || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".name", expected: "string & MaxLength<64>", value: input.name }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".name", expected: "(string & MaxLength<64>)", value: input.name }, _errorFactory)) && (undefined === input.description || "string" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".description", expected: "(string | undefined)", value: input.description }, _errorFactory)) && (("object" === typeof input.inputSchema && null !== input.inputSchema || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".inputSchema", expected: "(IObject & { $defs?: Record<string, IJsonSchema> | undefined; } | IReference<string> & { $defs?: Record<string, IJsonSchema> | undefined; })", value: input.inputSchema }, _errorFactory)) && _au1(input.inputSchema, _path + ".inputSchema", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".inputSchema", expected: "(IObject & { $defs?: Record<string, IJsonSchema> | undefined; } | IReference<string> & { $defs?: Record<string, IJsonSchema> | undefined; })", value: input.inputSchema }, _errorFactory)); const _ao1 = (input, _path, _exceptionable = true) => (undefined === input.nullable || "boolean" === typeof input.nullable || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".nullable", expected: "(boolean | undefined)", value: input.nullable }, _errorFactory)) && (undefined === input.properties || ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".properties", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.properties }, _errorFactory)) && _ao2(input.properties, _path + ".properties", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".properties", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.properties }, _errorFactory)) && (undefined === input.required || (Array.isArray(input.required) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required", expected: "(Array<string> | undefined)", value: input.required }, _errorFactory)) && input.required.every((elem, _index22) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required[" + _index22 + "]", expected: "string", value: elem }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required", expected: "(Array<string> | undefined)", value: input.required }, _errorFactory)) && ((null !== input.additionalProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory)) && (undefined === input.additionalProperties || "boolean" === typeof input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties && false === Array.isArray(input.additionalProperties) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory)) && _au0(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory))) && (undefined === input.maxProperties || "number" === typeof input.maxProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".maxProperties", expected: "(number | undefined)", value: input.maxProperties }, _errorFactory)) && (undefined === input.minProperties || "number" === typeof input.minProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".minProperties", expected: "(number | undefined)", value: input.minProperties }, _errorFactory)) && ("object" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".type", expected: "\"object\"", value: input.type }, _errorFactory)) && (undefined === input.title || "string" === typeof input.title || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".title", expected: "(string | undefined)", value: input.title }, _errorFactory)) && (undefined === input.description || "string" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".description", expected: "(string | undefined)", value: input.description }, _errorFactory)) && (undefined === input.deprecated || "boolean" === typeof input.deprecated || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".deprecated", expected: "(boolean | undefined)", value: input.deprecated }, _errorFactory)) && true && ((null !== input.examples || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory)) && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _ao5(input.examples, _path + ".examples", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory))) && (undefined === input.$defs || ("object" === typeof input.$defs && null !== input.$defs && false === Array.isArray(input.$defs) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".$defs", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.$defs }, _errorFactory)) && _ao2(input.$defs, _path + ".$defs", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".$defs", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.$defs }, _errorFactory)); const _ao2 = (input, _path, _exceptionable = true) => false === _exceptionable || Object.keys(input).every(key => { const value = input[key]; if (undefined === value) return true; return ("object" === typeof value && null !== value && false === Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown)", value: value }, _errorFactory)) && _au0(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown)", value: value }, _errorFactory); }); const _ao3 = (input, _path, _exceptionable = true) => (undefined === input.nullable || "boolean" === typeof input.nullable || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".nullable", expected: "(boolean | undefined)", value: input.nullable }, _errorFactory)) && (undefined === input.properties || ("object" === typeof input.properties && null !== input.properties && false === Array.isArray(input.properties) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".properties", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.properties }, _errorFactory)) && _ao2(input.properties, _path + ".properties", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".properties", expected: "(Record<string, OpenApiV3_1.IJsonSchema> | undefined)", value: input.properties }, _errorFactory)) && (undefined === input.required || (Array.isArray(input.required) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required", expected: "(Array<string> | undefined)", value: input.required }, _errorFactory)) && input.required.every((elem, _index23) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required[" + _index23 + "]", expected: "string", value: elem }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".required", expected: "(Array<string> | undefined)", value: input.required }, _errorFactory)) && ((null !== input.additionalProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory)) && (undefined === input.additionalProperties || "boolean" === typeof input.additionalProperties || ("object" === typeof input.additionalProperties && null !== input.additionalProperties && false === Array.isArray(input.additionalProperties) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory)) && _au0(input.additionalProperties, _path + ".additionalProperties", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".additionalProperties", expected: "(OpenApiV3_1.IJsonSchema.IAllOf | OpenApiV3_1.IJsonSchema.IAnyOf | OpenApiV3_1.IJsonSchema.IArray | OpenApiV3_1.IJsonSchema.IBoolean | OpenApiV3_1.IJsonSchema.IConstant | OpenApiV3_1.IJsonSchema.IInteger | OpenApiV3_1.IJsonSchema.IMixed | OpenApiV3_1.IJsonSchema.INull | OpenApiV3_1.IJsonSchema.INumber | OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IOneOf | OpenApiV3_1.IJsonSchema.IRecursiveReference | OpenApiV3_1.IJsonSchema.IReference<string> | OpenApiV3_1.IJsonSchema.IString | OpenApiV3_1.IJsonSchema.IUnknown | boolean | undefined)", value: input.additionalProperties }, _errorFactory))) && (undefined === input.maxProperties || "number" === typeof input.maxProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".maxProperties", expected: "(number | undefined)", value: input.maxProperties }, _errorFactory)) && (undefined === input.minProperties || "number" === typeof input.minProperties || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".minProperties", expected: "(number | undefined)", value: input.minProperties }, _errorFactory)) && ("object" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".type", expected: "\"object\"", value: input.type }, _errorFactory)) && (undefined === input.title || "string" === typeof input.title || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".title", expected: "(string | undefined)", value: input.title }, _errorFactory)) && (undefined === input.description || "string" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".description", expected: "(string | undefined)", value: input.description }, _errorFactory)) && (undefined === input.deprecated || "boolean" === typeof input.deprecated || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".deprecated", expected: "(boolean | undefined)", value: input.deprecated }, _errorFactory)) && true && ((null !== input.examples || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory)) && (undefined === input.examples || (Array.isArray(input.examples) || "object" === typeof input.examples && null !== input.examples && false === Array.isArray(input.examples) && _ao5(input.examples, _path + ".examples", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".examples", expected: "(Array<any> | Record<string, any> | undefined)", value: input.examples }, _errorFactory))); const _ao4 = (input, _path, _exceptionable = true) => ((Array.isArray(input.type) || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".type", expected: "Array<\"string\" | \"number\" | \"boolean\" | \"object\" | \"integer\" | \"array\" | \"null\">", value: input.type }, _errorFactory)) && input.type.every((elem, _index24) => "string" === elem || "number" === elem || "boolean" === elem || "object" === elem || "integer" === elem || "array" === elem || "null" === elem || __typia_transform__assertGuard._assertGuard(_exceptionable, { method: "typia.assert", path: _path + ".type[" + _index24 + "]", expected: "(\"array\" | \"boolean\" | \"integer\" | \"null\" | \"number\" | \"ob