UNPKG

@firefliesai/schema-forge

Version:

Transform TypeScript classes into JSON Schema definitions with automatic support for OpenAI, Anthropic, and Google Gemini function calling (tool) formats

105 lines (104 loc) 9.38 kB
"use strict"; /** * Schema Forge - TypeScript to JSON Schema conversion * * Main exports for schema-forge library */ 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 __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Schema = exports.classToLLMTool = exports.prepareForOpenAIStructuredOutput = exports.openAIToolToJsonSchema = exports.openAIResponseApiToolToJsonSchema = exports.jsonSchemaToOpenAITool = exports.jsonSchemaToOpenAIResponseFormat = exports.jsonSchemaToOpenAIResponseApiTool = exports.jsonSchemaToOpenAIResponseApiTextSchema = exports.jsonSchemaToGeminiVertexTool = exports.jsonSchemaToGeminiVertexResponseSchema = exports.jsonSchemaToGeminiTool = exports.jsonSchemaToGeminiResponseSchema = exports.jsonSchemaToGeminiOldTool = exports.jsonSchemaToGeminiOldResponseSchema = exports.jsonSchemaToAnthropicTool = exports.classToOpenAITool = exports.classToOpenAIResponseFormatJsonSchema = exports.classToOpenAIResponseApiTool = exports.classToOpenAIResponseApiTextSchema = exports.classToGeminiVertexTool = exports.classToGeminiVertexResponseSchema = exports.classToGeminiTool = exports.classToGeminiResponseSchema = exports.classToGeminiOldTool = exports.classToGeminiOldResponseSchema = exports.classToAnthropicTool = exports.updateSchemaProperty = exports.ToolProp = exports.ToolMeta = exports.addSchemaProperty = exports.classToJsonSchema = void 0; // Re-export all public types __exportStar(require("./types"), exports); // Re-export core functionality var core_1 = require("./core"); Object.defineProperty(exports, "classToJsonSchema", { enumerable: true, get: function () { return core_1.classToJsonSchema; } }); // Re-export decorator functions var decorators_1 = require("./decorators"); Object.defineProperty(exports, "addSchemaProperty", { enumerable: true, get: function () { return decorators_1.addSchemaProperty; } }); Object.defineProperty(exports, "ToolMeta", { enumerable: true, get: function () { return decorators_1.ToolMeta; } }); Object.defineProperty(exports, "ToolProp", { enumerable: true, get: function () { return decorators_1.ToolProp; } }); Object.defineProperty(exports, "updateSchemaProperty", { enumerable: true, get: function () { return decorators_1.updateSchemaProperty; } }); // Re-export LLM-specific functions var llm_formats_1 = require("./llm-formats"); Object.defineProperty(exports, "classToAnthropicTool", { enumerable: true, get: function () { return llm_formats_1.classToAnthropicTool; } }); Object.defineProperty(exports, "classToGeminiOldResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiOldResponseSchema; } }); Object.defineProperty(exports, "classToGeminiOldTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiOldTool; } }); Object.defineProperty(exports, "classToGeminiResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiResponseSchema; } }); Object.defineProperty(exports, "classToGeminiTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiTool; } }); Object.defineProperty(exports, "classToGeminiVertexResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiVertexResponseSchema; } }); Object.defineProperty(exports, "classToGeminiVertexTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiVertexTool; } }); Object.defineProperty(exports, "classToOpenAIResponseApiTextSchema", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseApiTextSchema; } }); Object.defineProperty(exports, "classToOpenAIResponseApiTool", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseApiTool; } }); Object.defineProperty(exports, "classToOpenAIResponseFormatJsonSchema", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseFormatJsonSchema; } }); Object.defineProperty(exports, "classToOpenAITool", { enumerable: true, get: function () { return llm_formats_1.classToOpenAITool; } }); // Direct JSON Schema converters Object.defineProperty(exports, "jsonSchemaToAnthropicTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToAnthropicTool; } }); Object.defineProperty(exports, "jsonSchemaToGeminiOldResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiOldResponseSchema; } }); Object.defineProperty(exports, "jsonSchemaToGeminiOldTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiOldTool; } }); Object.defineProperty(exports, "jsonSchemaToGeminiResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiResponseSchema; } }); Object.defineProperty(exports, "jsonSchemaToGeminiTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiTool; } }); Object.defineProperty(exports, "jsonSchemaToGeminiVertexResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiVertexResponseSchema; } }); Object.defineProperty(exports, "jsonSchemaToGeminiVertexTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiVertexTool; } }); Object.defineProperty(exports, "jsonSchemaToOpenAIResponseApiTextSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseApiTextSchema; } }); Object.defineProperty(exports, "jsonSchemaToOpenAIResponseApiTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseApiTool; } }); Object.defineProperty(exports, "jsonSchemaToOpenAIResponseFormat", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseFormat; } }); Object.defineProperty(exports, "jsonSchemaToOpenAITool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAITool; } }); Object.defineProperty(exports, "openAIResponseApiToolToJsonSchema", { enumerable: true, get: function () { return llm_formats_1.openAIResponseApiToolToJsonSchema; } }); // Extract JSON Schema from LLM formats Object.defineProperty(exports, "openAIToolToJsonSchema", { enumerable: true, get: function () { return llm_formats_1.openAIToolToJsonSchema; } }); // Re-export utility functions var utils_1 = require("./utils"); Object.defineProperty(exports, "prepareForOpenAIStructuredOutput", { enumerable: true, get: function () { return utils_1.prepareForOpenAIStructuredOutput; } }); // Legacy import name for backwards compatibility var llm_formats_2 = require("./llm-formats"); Object.defineProperty(exports, "classToLLMTool", { enumerable: true, get: function () { return llm_formats_2.classToOpenAITool; } }); // Namespace for all exports (backwards compatibility) const core_2 = require("./core"); const decorators_2 = require("./decorators"); const llm_formats_3 = require("./llm-formats"); const utils_2 = require("./utils"); exports.Schema = { // Decorators ToolMeta: decorators_2.ToolMeta, ToolProp: decorators_2.ToolProp, // Core JSON Schema generation classToJsonSchema: core_2.classToJsonSchema, prepareForOpenAIStructuredOutput: utils_2.prepareForOpenAIStructuredOutput, // Schema modification updateSchemaProperty: decorators_2.updateSchemaProperty, addSchemaProperty: decorators_2.addSchemaProperty, // LLM-specific class converter functions classToOpenAITool: llm_formats_3.classToOpenAITool, classToOpenAIResponseFormatJsonSchema: llm_formats_3.classToOpenAIResponseFormatJsonSchema, classToOpenAIResponseApiTool: llm_formats_3.classToOpenAIResponseApiTool, classToOpenAIResponseApiTextSchema: llm_formats_3.classToOpenAIResponseApiTextSchema, classToGeminiTool: llm_formats_3.classToGeminiTool, classToGeminiResponseSchema: llm_formats_3.classToGeminiResponseSchema, classToAnthropicTool: llm_formats_3.classToAnthropicTool, // Direct JSON Schema converter functions jsonSchemaToOpenAITool: llm_formats_3.jsonSchemaToOpenAITool, jsonSchemaToOpenAIResponseFormat: llm_formats_3.jsonSchemaToOpenAIResponseFormat, jsonSchemaToOpenAIResponseApiTool: llm_formats_3.jsonSchemaToOpenAIResponseApiTool, jsonSchemaToOpenAIResponseApiTextSchema: llm_formats_3.jsonSchemaToOpenAIResponseApiTextSchema, jsonSchemaToGeminiTool: llm_formats_3.jsonSchemaToGeminiTool, jsonSchemaToGeminiResponseSchema: llm_formats_3.jsonSchemaToGeminiResponseSchema, jsonSchemaToAnthropicTool: llm_formats_3.jsonSchemaToAnthropicTool, // Extract JSON Schema from LLM formats openAIToolToJsonSchema: llm_formats_3.openAIToolToJsonSchema, openAIResponseApiToolToJsonSchema: llm_formats_3.openAIResponseApiToolToJsonSchema, // Legacy name classToLLMTool: llm_formats_3.classToOpenAITool, };