UNPKG

recoder-shared

Version:

Shared types, utilities, and configurations for Recoder

89 lines 2.67 kB
"use strict"; /** * VS Code Language Model Selector Utilities * Helper functions for working with VS Code's Language Model API */ Object.defineProperty(exports, "__esModule", { value: true }); exports.stringifyVsCodeLmModelSelector = stringifyVsCodeLmModelSelector; exports.parseVsCodeLmModelSelector = parseVsCodeLmModelSelector; exports.getAvailableVsCodeModels = getAvailableVsCodeModels; exports.isValidVsCodeLmSelector = isValidVsCodeLmSelector; exports.getBestVsCodeLmMatch = getBestVsCodeLmMatch; /** * Stringify VS Code Language Model selector for API usage */ function stringifyVsCodeLmModelSelector(vendor, family, version) { if (version) { return `${vendor}/${family}/${version}`; } return `${vendor}/${family}`; } /** * Parse VS Code Language Model selector string */ function parseVsCodeLmModelSelector(selector) { const parts = selector.split('/'); if (parts.length < 2) { return null; } return { vendor: parts[0], family: parts[1], version: parts[2] || undefined, }; } /** * Get available VS Code Language Models * This is a placeholder - actual implementation would use VS Code API */ function getAvailableVsCodeModels() { return [ { id: 'gpt-4', vendor: 'openai', family: 'gpt-4', version: 'latest', maxInputTokens: 128000, maxOutputTokens: 4096, }, { id: 'gpt-3.5-turbo', vendor: 'openai', family: 'gpt-3.5-turbo', version: 'latest', maxInputTokens: 16384, maxOutputTokens: 4096, }, ]; } /** * Validate VS Code Language Model selector */ function isValidVsCodeLmSelector(selector) { const parsed = parseVsCodeLmModelSelector(selector); return parsed !== null && parsed.vendor.length > 0 && parsed.family.length > 0; } /** * Get best matching VS Code Language Model */ function getBestVsCodeLmMatch(preferredVendor, preferredFamily) { const available = getAvailableVsCodeModels(); if (!available.length) { return null; } // Try to find exact match if (preferredVendor && preferredFamily) { const exact = available.find(m => m.vendor === preferredVendor && m.family === preferredFamily); if (exact) return exact; } // Try to find vendor match if (preferredVendor) { const vendorMatch = available.find(m => m.vendor === preferredVendor); if (vendorMatch) return vendorMatch; } // Return first available return available[0]; } //# sourceMappingURL=vsCodeSelectorUtils.js.map