ObjectStackObjectStack

Model Registry

Model Registry protocol schemas

AI Model Registry Protocol

Centralized registry for managing AI models, prompt templates, and model versioning.

Enables AI-powered ObjectStack applications to discover and use LLMs consistently.

Source: packages/spec/src/ai/model-registry.zod.ts

TypeScript Usage

import { ModelCapability, ModelConfig, ModelLimits, ModelPricing, ModelProvider, ModelRegistryEntry, ModelSelectionCriteria, PromptVariable } from '@objectstack/spec/ai';
import type { ModelCapability, ModelConfig, ModelLimits, ModelPricing, ModelProvider, ModelRegistryEntry, ModelSelectionCriteria, PromptVariable } from '@objectstack/spec/ai';

// Validate data
const result = ModelCapability.parse(data);

ModelCapability

Properties

PropertyTypeRequiredDescription
textGenerationbooleanSupports text generation
textEmbeddingbooleanSupports text embedding
imageGenerationbooleanSupports image generation
imageUnderstandingbooleanSupports image understanding
functionCallingbooleanSupports function calling
codeGenerationbooleanSupports code generation
reasoningbooleanSupports advanced reasoning

ModelConfig

Properties

PropertyTypeRequiredDescription
idstringUnique model identifier
namestringModel display name
versionstringModel version (e.g., "gpt-4-turbo-2024-04-09")
providerEnum<'openai' | 'azure_openai' | 'anthropic' | 'google' | 'cohere' | 'huggingface' | 'local' | 'custom'>
capabilitiesObject
limitsObject
pricingObjectoptional
endpointstringoptionalCustom API endpoint
apiKeystringoptionalAPI key (Warning: Prefer secretRef)
secretRefstringoptionalReference to stored secret (e.g. system:openai_api_key)
regionstringoptionalDeployment region (e.g., "us-east-1")
descriptionstringoptional
tagsstring[]optionalTags for categorization
deprecatedboolean
recommendedForstring[]optionalUse case recommendations

ModelLimits

Properties

PropertyTypeRequiredDescription
maxTokensintegerMaximum tokens per request
contextWindowintegerContext window size
maxOutputTokensintegeroptionalMaximum output tokens
rateLimitObjectoptional

ModelPricing

Properties

PropertyTypeRequiredDescription
currencystring
inputCostPer1kTokensnumberoptionalCost per 1K input tokens
outputCostPer1kTokensnumberoptionalCost per 1K output tokens
embeddingCostPer1kTokensnumberoptionalCost per 1K embedding tokens

ModelProvider

Allowed Values

  • openai
  • azure_openai
  • anthropic
  • google
  • cohere
  • huggingface
  • local
  • custom

ModelRegistryEntry

Properties

PropertyTypeRequiredDescription
modelObject
statusEnum<'active' | 'deprecated' | 'experimental' | 'disabled'>
priorityintegerPriority for model selection
fallbackModelsstring[]optionalFallback model IDs
healthCheckObjectoptional

ModelSelectionCriteria

Properties

PropertyTypeRequiredDescription
capabilitiesstring[]optionalRequired capabilities
maxCostPer1kTokensnumberoptionalMaximum acceptable cost
minContextWindownumberoptionalMinimum context window size
providerEnum<'openai' | 'azure_openai' | 'anthropic' | 'google' | 'cohere' | 'huggingface' | 'local' | 'custom'>optional
tagsstring[]optional
excludeDeprecatedboolean

PromptVariable

Properties

PropertyTypeRequiredDescription
namestringVariable name (e.g., "user_name", "context")
typeEnum<'string' | 'number' | 'boolean' | 'object' | 'array'>
requiredboolean
defaultValueanyoptional
descriptionstringoptional
validationObjectoptional

On this page