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

233 lines (232 loc) 8.55 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FirstLevelDto = exports.SecondLevelDto = exports.ThirdLevelDto = exports.GameCharacterV2 = exports.GameCharacter = exports.GameCharacterToolDesc = exports.GameCharacterToolName = void 0; const schema_forge_1 = require("../schema-forge"); var StatusType; (function (StatusType) { StatusType["Online"] = "ONLINE"; StatusType["Offline"] = "OFFLINE"; StatusType["Away"] = "AWAY"; StatusType["Busy"] = "BUSY"; })(StatusType || (StatusType = {})); var RankType; (function (RankType) { RankType[RankType["Novice"] = 1] = "Novice"; RankType[RankType["Intermediate"] = 2] = "Intermediate"; RankType[RankType["Expert"] = 3] = "Expert"; RankType[RankType["Master"] = 4] = "Master"; })(RankType || (RankType = {})); exports.GameCharacterToolName = 'Game Character Configuration'; exports.GameCharacterToolDesc = 'Configure a game character with various attributes'; /** * tips: * 1. for array or enum type, you need to add @ToolProp({items:{type}, or enum instead}. * for string/number property, you can just use TypeScript type * 2. you can pass TypeScript Enum or [1, 2, 3] or ['a', 'b', 'c'] as enum */ let GameCharacter = class GameCharacter { }; exports.GameCharacter = GameCharacter; __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character name' }), __metadata("design:type", String) ], GameCharacter.prototype, "name", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character level' }), __metadata("design:type", Number) ], GameCharacter.prototype, "level", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character titles', items: { type: 'string' } }), __metadata("design:type", Array) ], GameCharacter.prototype, "titles", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Score history', items: { type: 'number' } }), __metadata("design:type", Array) ], GameCharacter.prototype, "scores", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character current status', enum: StatusType, }), __metadata("design:type", String) ], GameCharacter.prototype, "status", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character allowed statuses', enum: StatusType, }), __metadata("design:type", Array) ], GameCharacter.prototype, "allowedStatuses", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character class type', enum: ['Warrior', 'Mage', 'Rogue', 'Priest'], }), __metadata("design:type", String) ], GameCharacter.prototype, "classType", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character roles', enum: ['Tank', 'Healer', 'DPS', 'Support'], }), __metadata("design:type", Array) ], GameCharacter.prototype, "roles", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character rank', enum: RankType, }), __metadata("design:type", Number) ], GameCharacter.prototype, "rank", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character available ranks', enum: RankType, }), __metadata("design:type", Array) ], GameCharacter.prototype, "availableRanks", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character tier', enum: [1, 2, 3, 4, 5], }), __metadata("design:type", Number) ], GameCharacter.prototype, "tier", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character unlocked tiers', enum: [1, 2, 3, 4, 5], }), __metadata("design:type", Array) ], GameCharacter.prototype, "unlockedTiers", void 0); exports.GameCharacter = GameCharacter = __decorate([ (0, schema_forge_1.ToolMeta)({ name: exports.GameCharacterToolName, description: exports.GameCharacterToolDesc, }) ], GameCharacter); class Location { } __decorate([ (0, schema_forge_1.ToolProp)({ description: 'country name' }), __metadata("design:type", String) ], Location.prototype, "country", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'city name' }), __metadata("design:type", String) ], Location.prototype, "city", void 0); class Bank { } __decorate([ (0, schema_forge_1.ToolProp)({ description: 'bank name' }), __metadata("design:type", String) ], Bank.prototype, "bankName", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'account number' }), __metadata("design:type", Number) ], Bank.prototype, "account", void 0); let GameCharacterV2 = class GameCharacterV2 { }; exports.GameCharacterV2 = GameCharacterV2; __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character name' }), __metadata("design:type", String) ], GameCharacterV2.prototype, "name", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character level' }), __metadata("design:type", Number) ], GameCharacterV2.prototype, "level", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character titles', items: { type: 'string' }, }), __metadata("design:type", Array) ], GameCharacterV2.prototype, "titles", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Score history', items: { type: 'number' }, }), __metadata("design:type", Array) ], GameCharacterV2.prototype, "scores", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character status', enum: StatusType, }), __metadata("design:type", String) ], GameCharacterV2.prototype, "status", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character rank', enum: RankType, }), __metadata("design:type", Number) ], GameCharacterV2.prototype, "rank", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Available statuses', enum: StatusType, }), __metadata("design:type", Array) ], GameCharacterV2.prototype, "availableStatuses", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Location info' }), __metadata("design:type", Location) ], GameCharacterV2.prototype, "location", void 0); __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Bank info', items: { type: Bank }, }), __metadata("design:type", Array) ], GameCharacterV2.prototype, "banks", void 0); exports.GameCharacterV2 = GameCharacterV2 = __decorate([ (0, schema_forge_1.ToolMeta)({ name: 'game_character', description: 'Game character with location and bank information', }) ], GameCharacterV2); class ThirdLevelDto { } exports.ThirdLevelDto = ThirdLevelDto; __decorate([ (0, schema_forge_1.ToolProp)({ description: 'ThirdLevelDto name', enum: ['A', 'B', 'C', 'D'], }), __metadata("design:type", String) ], ThirdLevelDto.prototype, "name", void 0); class SecondLevelDto { } exports.SecondLevelDto = SecondLevelDto; __decorate([ (0, schema_forge_1.ToolProp)({ description: 'Character name', items: { type: ThirdLevelDto }, }), __metadata("design:type", Array) ], SecondLevelDto.prototype, "thirdLevelObjs", void 0); let FirstLevelDto = class FirstLevelDto { }; exports.FirstLevelDto = FirstLevelDto; __decorate([ (0, schema_forge_1.ToolProp)({ description: '2nd level object' }), __metadata("design:type", SecondLevelDto) ], FirstLevelDto.prototype, "secondLevelObj", void 0); exports.FirstLevelDto = FirstLevelDto = __decorate([ (0, schema_forge_1.ToolMeta)({ name: '3_level_dto', description: 'First level object', }) ], FirstLevelDto);