UNPKG

zon-format

Version:

ZON: The most token-efficient serialization format for LLMs - beats CSV, TOON, JSON, and all competitors

101 lines (100 loc) 2.55 kB
"use strict"; /** * Dataset Management for ZON Evaluations */ Object.defineProperty(exports, "__esModule", { value: true }); exports.globalRegistry = exports.DatasetRegistry = void 0; exports.createDataset = createDataset; /** * Registry for managing evaluation datasets */ class DatasetRegistry { constructor() { this.datasets = new Map(); } /** * Register a dataset */ register(dataset) { const key = `${dataset.id}@${dataset.version}`; this.datasets.set(key, dataset); } /** * Get a dataset by ID and optional version */ get(id, version) { if (version) { return this.datasets.get(`${id}@${version}`) || null; } const matching = Array.from(this.datasets.values()) .filter(d => d.id === id) .sort((a, b) => this.compareVersions(b.version, a.version)); return matching[0] || null; } /** * Get all datasets with a specific tag */ getByTag(tag) { return Array.from(this.datasets.values()) .filter(d => d.tags.includes(tag)); } /** * Get all golden (baseline) datasets */ getGolden() { return this.getByTag('golden'); } /** * List all registered datasets */ list() { return Array.from(this.datasets.values()); } /** * Remove a dataset */ remove(id, version) { return this.datasets.delete(`${id}@${version}`); } /** * Clear all datasets */ clear() { this.datasets.clear(); } /** * Compare semantic versions */ compareVersions(v1, v2) { const parts1 = v1.split('.').map(Number); const parts2 = v2.split('.').map(Number); for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) { const p1 = parts1[i] || 0; const p2 = parts2[i] || 0; if (p1 > p2) return 1; if (p1 < p2) return -1; } return 0; } } exports.DatasetRegistry = DatasetRegistry; /** * Global dataset registry */ exports.globalRegistry = new DatasetRegistry(); /** * Helper to create a dataset */ function createDataset(id, version, name, data, questions, options) { return { id, version, name, data, questions, schema: options === null || options === void 0 ? void 0 : options.schema, tags: (options === null || options === void 0 ? void 0 : options.tags) || [] }; }