Skip to main content
Glama

CTX: Context as Code (CaC) tool

by context-hub
MIT License
235
  • Apple
  • Linux
ModifierResolver.php1.68 kB
<?php declare(strict_types=1); namespace Butschster\ContextGenerator\Modifier\Alias; use Butschster\ContextGenerator\Modifier\Modifier; /** * Service for resolving modifier aliases to actual Modifier objects */ final readonly class ModifierResolver { public function __construct( private AliasesRegistry $aliasesRegistry = new AliasesRegistry(), ) {} /** * Resolve a modifier reference that might be an alias or a direct modifier definition * * @param string|array<string, mixed>|Modifier $reference */ public function resolve(string|array|Modifier $reference): Modifier { // If already a Modifier instance, return it directly if ($reference instanceof Modifier) { return $reference; } // If it's a string, check if it's an alias if (\is_string($reference)) { if ($this->aliasesRegistry->has($reference)) { $modifier = $this->aliasesRegistry->get($reference); \assert($modifier !== null); return $modifier; } // Not an alias, treat as a direct modifier name return new Modifier(name: $reference); } // Otherwise, it's an array configuration return Modifier::from($reference); } /** * Resolve an array of modifier references * * @param array<string|array<string, mixed>|Modifier> $references * @return array<Modifier> */ public function resolveAll(array $references): array { return \array_map( fn($reference) => $this->resolve($reference), $references, ); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/context-hub/generator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server