mlld
Version:
mlld: a modular prompt scripting language
1 lines • 29.5 kB
Source Map (JSON)
{"version":3,"sources":["../core/resolvers/RegistryResolver.ts"],"names":["RegistryResolver","name","description","type","capabilities","io","read","write","list","contexts","import","path","output","supportedContentTypes","defaultContentType","priority","cache","strategy","ttl","duration","Map","defaultCacheTimeout","defaultRegistryRepo","defaultBranch","parseModuleReference","ref","match","MlldResolutionError","author","module","version","isTag","test","canResolve","config","startsWith","resolveVersion","available","requested","sorted","filter","v","satisfiesVersion","sort","a","b","va","parseSemVer","vb","compareSemVer","fetchVersionData","registryRepo","branch","versionUrl","headers","token","response","fetch","ok","status","json","resolve","moduleKey","registryConfig","cacheTimeout","logger","debug","registryFile","fetchRegistry","moduleEntry","modules","resolvedVersion","versionData","tags","availableVersions","resolved","join","sourceUrl","source","url","statusText","content","text","length","process","env","MLLD_DEBUG","console","log","substring","contentType","metadata","timestamp","Date","taintLevel","TaintLevel","PUBLIC","mimeType","hash","contentHash","error","errorMessage","Error","message","String","validateConfig","errors","undefined","push","checkAccess","operation","cacheKey","cached","getCachedRegistry","registryUrl","registryData","validateRegistryFile","set","now","Object","keys","timeout","get","maxAge","delete","data","moduleName","moduleData","entries","about","Array","isArray","needs","license"],"mappings":"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","file":"chunk-2U4LJYI7.mjs","sourcesContent":["import { \n Resolver, \n ResolverContent, \n ResolverType,\n ContentInfo,\n ResolverCapabilities\n} from '@core/resolvers/types';\nimport { MlldResolutionError } from '@core/errors';\nimport { TaintLevel } from '@security/taint/TaintTracker';\nimport { logger } from '@core/utils/logger';\nimport { parseSemVer, compareSemVer, satisfiesVersion } from '@core/utils/version-checker';\n\n/**\n * Configuration for RegistryResolver\n */\nexport interface RegistryResolverConfig {\n /**\n * Registry repository URL (defaults to mlld-lang/registry)\n */\n registryRepo?: string;\n \n /**\n * Branch to use (defaults to main)\n */\n branch?: string;\n \n /**\n * Cache timeout in milliseconds (defaults to 5 minutes)\n */\n cacheTimeout?: number;\n \n /**\n * GitHub API token for rate limiting (optional)\n */\n token?: string;\n}\n\n/**\n * Module reference format for version support\n */\ninterface ModuleReference {\n author: string;\n module: string;\n version?: string; // \"1.0.0\", \"^1.0.0\", \"beta\"\n isTag?: boolean; // true if version is a tag like \"beta\"\n}\n\n/**\n * Registry format from centralized modules.json file\n */\ninterface RegistryFile {\n version?: string;\n generated?: string;\n modules: Record<string, {\n name: string;\n author: string;\n version?: string;\n about: string;\n needs: string[];\n repo?: string;\n keywords?: string[];\n bugs?: string;\n homepage?: string;\n license: string;\n mlldVersion?: string;\n ownerGithubUserIds?: number[];\n source: {\n type: string;\n url: string;\n contentHash: string;\n repository?: {\n type: string;\n url: string;\n commit: string;\n path: string;\n };\n gistId?: string;\n };\n dependencies?: Record<string, any>;\n publishedAt: string;\n publishedBy?: number;\n // New fields for version support\n availableVersions?: string[];\n tags?: Record<string, string>;\n owners?: string[];\n maintainers?: string[];\n }>;\n}\n\n/**\n * Registry Resolver - resolves @user/module patterns using GitHub registry\n * This is the primary resolver for public modules in RC phase\n */\nexport class RegistryResolver implements Resolver {\n name = 'REGISTRY';\n description = 'Resolves public modules using GitHub registry at mlld-lang/registry';\n type: ResolverType = 'input';\n \n capabilities: ResolverCapabilities = {\n io: { read: true, write: false, list: false },\n contexts: { import: true, path: false, output: false },\n supportedContentTypes: ['module'],\n defaultContentType: 'module',\n priority: 10, // Higher priority than file resolvers\n cache: { \n strategy: 'persistent',\n ttl: { duration: 300 } // 5 minutes\n }\n };\n\n private readonly cache: Map<string, { content: RegistryFile; timestamp: number }> = new Map();\n private readonly defaultCacheTimeout = 300000; // 5 minutes\n private readonly defaultRegistryRepo = 'mlld-lang/registry';\n private readonly defaultBranch = 'main';\n\n /**\n * Parse module reference with version support\n */\n private parseModuleReference(ref: string): ModuleReference {\n // @author/module@version or @author/module\n const match = ref.match(/^@([^/]+)\\/([^@]+)(?:@(.+))?$/);\n if (!match) {\n throw new MlldResolutionError(\n `Invalid module reference format. Expected @user/module or @user/module@version, got: ${ref}`\n );\n }\n \n const [, author, module, version] = match;\n const isTag = version && !(/^[\\d^~<>=]/.test(version));\n \n return { author, module, version, isTag };\n }\n\n /**\n * Check if this resolver can handle the reference\n * Registry resolver handles @user/module pattern with optional version\n */\n canResolve(ref: string, config?: RegistryResolverConfig): boolean {\n // Must start with @\n if (!ref.startsWith('@')) return false;\n \n try {\n this.parseModuleReference(ref);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Resolve version for a module\n */\n private resolveVersion(\n available: string[],\n requested: string\n ): string | null {\n // Handle tags are resolved by caller\n \n // Sort versions in descending order\n const sorted = available\n .filter(v => satisfiesVersion(v, requested))\n .sort((a, b) => {\n const va = parseSemVer(a);\n const vb = parseSemVer(b);\n return compareSemVer(vb, va);\n });\n \n return sorted[0] || null;\n }\n\n /**\n * Fetch version-specific data from API or GitHub\n */\n private async fetchVersionData(\n author: string,\n module: string,\n version: string,\n registryRepo: string,\n branch: string,\n config?: RegistryResolverConfig\n ): Promise<any> {\n // For now, fetch directly from GitHub\n // Later this will use the API\n const versionUrl = `https://raw.githubusercontent.com/${registryRepo}/${branch}/modules/${author}/${module}/${version}.json`;\n \n const headers: HeadersInit = {\n 'Accept': 'application/json',\n 'User-Agent': 'mlld-registry-resolver'\n };\n\n if (config?.token) {\n headers['Authorization'] = `token ${config.token}`;\n }\n\n const response = await fetch(versionUrl, { headers });\n \n if (!response.ok) {\n throw new MlldResolutionError(\n `Failed to fetch version data for @${author}/${module}@${version}: ${response.status}`\n );\n }\n \n return response.json();\n }\n\n /**\n * Resolve a module reference using GitHub registry\n */\n async resolve(ref: string, config?: RegistryResolverConfig): Promise<ResolverContent> {\n // Parse version from reference\n const { author, module, version, isTag } = this.parseModuleReference(ref);\n const moduleKey = `@${author}/${module}`;\n\n // Extract only the RegistryResolverConfig fields, ignore extra fields from ResolverManager\n const registryConfig: RegistryResolverConfig = {\n registryRepo: config?.registryRepo,\n branch: config?.branch,\n cacheTimeout: config?.cacheTimeout,\n token: config?.token\n };\n\n const registryRepo = registryConfig.registryRepo || this.defaultRegistryRepo;\n const branch = registryConfig.branch || this.defaultBranch;\n\n logger.debug(`Resolving ${ref} from registry: ${registryRepo}`);\n\n try {\n // Fetch the centralized registry file\n const registryFile = await this.fetchRegistry(registryRepo, branch, registryConfig);\n \n // Look up the module\n const moduleEntry = registryFile.modules[moduleKey];\n \n if (!moduleEntry) {\n throw new MlldResolutionError(\n `Module '${module}' not found in ${author}'s registry`\n );\n }\n \n // Resolve version\n let resolvedVersion = moduleEntry.version; // Default to latest\n let versionData = moduleEntry; // Use registry data by default\n \n if (version) {\n if (isTag && moduleEntry.tags?.[version]) {\n // Resolve tag to version\n resolvedVersion = moduleEntry.tags[version];\n logger.debug(`Resolved tag '${version}' to version ${resolvedVersion}`);\n } else if (moduleEntry.availableVersions) {\n // Use version resolver\n const resolved = this.resolveVersion(\n moduleEntry.availableVersions,\n version || 'latest'\n );\n if (!resolved) {\n throw new MlldResolutionError(\n `No version matching '${version}' for ${moduleKey}\\nAvailable versions: ${moduleEntry.availableVersions.join(', ')}`\n );\n }\n resolvedVersion = resolved;\n } else if (version !== moduleEntry.version) {\n // Backward compat: only one version available\n throw new MlldResolutionError(\n `Version ${version} not found for ${moduleKey}. Only version ${moduleEntry.version} is available.`\n );\n }\n }\n \n // For non-latest versions, fetch version-specific data\n if (resolvedVersion !== moduleEntry.version && moduleEntry.availableVersions) {\n logger.debug(`Fetching version data for ${moduleKey}@${resolvedVersion}`);\n versionData = await this.fetchVersionData(\n author, module, resolvedVersion,\n registryRepo, branch, registryConfig\n );\n }\n \n // Get the source URL\n const sourceUrl = versionData.source.url;\n \n logger.debug(`Resolved ${ref} to ${moduleKey}@${resolvedVersion} at ${sourceUrl}`);\n\n // Fetch the actual module content from the source URL\n logger.debug(`Fetching module content from: ${sourceUrl}`);\n \n const response = await fetch(sourceUrl);\n if (!response.ok) {\n // Check for 404 specifically\n if (response.status === 404) {\n throw new MlldResolutionError(\n `Module content not found at ${sourceUrl}. The module may have been moved or deleted.`\n );\n }\n throw new MlldResolutionError(\n `Failed to fetch module content from ${sourceUrl}: ${response.status} ${response.statusText}`\n );\n }\n \n const content = await response.text();\n \n // Validate we got actual content, not an error page\n if (!content || content.length === 0) {\n throw new MlldResolutionError(\n `Module content is empty at ${sourceUrl}`\n );\n }\n \n if (process.env.MLLD_DEBUG === 'true') {\n console.log(`[RegistryResolver] Resolved to version: ${resolvedVersion}`);\n console.log(`[RegistryResolver] Fetched content from ${sourceUrl}`);\n console.log(`[RegistryResolver] Fetched content length: ${content.length}`);\n console.log(`[RegistryResolver] First 200 chars:`, content.substring(0, 200));\n }\n \n return {\n content,\n contentType: 'module',\n metadata: {\n source: `registry://${moduleKey}@${resolvedVersion}`,\n timestamp: new Date(),\n taintLevel: (TaintLevel as any).PUBLIC,\n author: moduleEntry.author,\n mimeType: 'text/x-mlld-module',\n hash: versionData.source.contentHash,\n sourceUrl,\n version: resolvedVersion\n }\n };\n } catch (error) {\n if (error instanceof MlldResolutionError) {\n throw error;\n }\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new MlldResolutionError(\n `Failed to resolve ${ref} from registry: ${errorMessage}`\n );\n }\n }\n\n /**\n * Validate configuration\n */\n validateConfig(config: any): string[] {\n const errors: string[] = [];\n\n if (config?.registryRepo !== undefined && typeof config.registryRepo !== 'string') {\n errors.push('registryRepo must be a string');\n }\n\n if (config?.branch !== undefined && typeof config.branch !== 'string') {\n errors.push('branch must be a string');\n }\n\n if (config?.cacheTimeout !== undefined) {\n if (typeof config.cacheTimeout !== 'number' || config.cacheTimeout < 0) {\n errors.push('cacheTimeout must be a non-negative number');\n }\n }\n\n if (config?.token !== undefined && typeof config.token !== 'string') {\n errors.push('token must be a string');\n }\n\n return errors;\n }\n\n /**\n * Check access - registry modules are always public/readable\n */\n async checkAccess(ref: string, operation: 'read' | 'write', config?: RegistryResolverConfig): Promise<boolean> {\n if (operation === 'write') {\n return false; // Registry is read-only\n }\n return this.canResolve(ref, config);\n }\n\n /**\n * Fetch the centralized registry file from GitHub\n */\n private async fetchRegistry(\n registryRepo: string, \n branch: string,\n config?: RegistryResolverConfig\n ): Promise<RegistryFile> {\n const cacheKey = `${registryRepo}:${branch}:modules`;\n \n // Check cache first\n const cached = this.getCachedRegistry(cacheKey, config?.cacheTimeout);\n if (cached) {\n logger.debug(`Registry cache hit`);\n return cached;\n }\n\n // Construct GitHub raw URL - use centralized modules.json\n const registryUrl = `https://raw.githubusercontent.com/${registryRepo}/${branch}/modules.json`;\n \n logger.debug(`Fetching registry from: ${registryUrl}`);\n\n // Fetch from GitHub\n const headers: HeadersInit = {\n 'Accept': 'application/json',\n 'User-Agent': 'mlld-registry-resolver'\n };\n\n if (config?.token) {\n headers['Authorization'] = `token ${config.token}`;\n }\n\n const response = await fetch(registryUrl, { headers });\n\n if (!response.ok) {\n if (response.status === 404) {\n throw new MlldResolutionError(\n `Registry not found at ${registryUrl}. The registry may be unavailable.`,\n { registryUrl }\n );\n }\n throw new Error(`GitHub API error: ${response.status} ${response.statusText}`);\n }\n\n const registryData = await response.json();\n \n // Validate registry format\n this.validateRegistryFile(registryData);\n \n // Cache the result\n this.cache.set(cacheKey, {\n content: registryData,\n timestamp: Date.now()\n });\n\n logger.debug(`Cached registry with ${Object.keys(registryData.modules || {}).length} modules`);\n\n return registryData;\n }\n\n\n /**\n * Get cached registry if available and not expired\n */\n private getCachedRegistry(cacheKey: string, timeout?: number): RegistryFile | null {\n const cached = this.cache.get(cacheKey);\n if (!cached) return null;\n\n const maxAge = timeout || this.defaultCacheTimeout;\n if (Date.now() - cached.timestamp > maxAge) {\n this.cache.delete(cacheKey);\n return null;\n }\n\n return cached.content;\n }\n\n /**\n * Validate registry file format\n */\n private validateRegistryFile(data: any): void {\n if (!data || typeof data !== 'object') {\n throw new Error('Registry file must be a valid JSON object');\n }\n\n if (!data.version) {\n throw new Error('Registry file missing version field');\n }\n\n if (!data.modules || typeof data.modules !== 'object') {\n throw new Error('Registry file missing or invalid modules field');\n }\n\n // Validate each module entry\n for (const [moduleName, moduleData] of Object.entries(data.modules)) {\n if (!moduleData || typeof moduleData !== 'object') {\n throw new Error(`Invalid module entry for '${moduleName}'`);\n }\n\n const module = moduleData as any;\n \n // Validate required fields\n if (!module.name || typeof module.name !== 'string') {\n throw new Error(`Module '${moduleName}' missing or invalid name field`);\n }\n\n if (!module.author || typeof module.author !== 'string') {\n throw new Error(`Module '${moduleName}' missing or invalid author field`);\n }\n\n if (!module.about || typeof module.about !== 'string') {\n throw new Error(`Module '${moduleName}' missing or invalid about field`);\n }\n\n if (!module.source || typeof module.source !== 'object') {\n throw new Error(`Module '${moduleName}' missing or invalid source field`);\n }\n\n if (!module.source.url || typeof module.source.url !== 'string') {\n throw new Error(`Module '${moduleName}' missing or invalid source.url field`);\n }\n\n if (!module.source.contentHash || typeof module.source.contentHash !== 'string') {\n throw new Error(`Module '${moduleName}' missing or invalid source.contentHash field`);\n }\n\n if (!Array.isArray(module.needs)) {\n throw new Error(`Module '${moduleName}' missing or invalid needs field (must be array)`);\n }\n\n if (module.license !== 'CC0') {\n throw new Error(`Module '${moduleName}' must have CC0 license`);\n }\n }\n }\n}"]}