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, ModelRegistry, ModelRegistryEntry, ModelSelectionCriteria, PromptTemplate, PromptVariable } from '@objectstack/spec/ai';
import type { ModelCapability, ModelConfig, ModelLimits, ModelPricing, ModelProvider, ModelRegistry, ModelRegistryEntry, ModelSelectionCriteria, PromptTemplate, 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

ModelRegistry

Properties

PropertyTypeRequiredDescription
namestringRegistry name
modelsRecord<string, Object>Model entries by ID
promptTemplatesRecord<string, Object>optionalPrompt templates by name
defaultModelstringoptionalDefault model ID
enableAutoFallbackbooleanAuto-fallback on errors

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

PromptTemplate

Properties

PropertyTypeRequiredDescription
idstringUnique template identifier
namestringTemplate name (snake_case)
labelstringDisplay name
systemstringoptionalSystem prompt
userstringUser prompt template with variables
assistantstringoptionalAssistant message prefix
variablesObject[]optionalTemplate variables
modelIdstringoptionalRecommended model ID
temperaturenumberoptional
maxTokensnumberoptional
topPnumberoptional
frequencyPenaltynumberoptional
presencePenaltynumberoptional
stopSequencesstring[]optional
versionstring
descriptionstringoptional
categorystringoptionalTemplate category (e.g., "code_generation", "support")
tagsstring[]optional
examplesObject[]optional

PromptVariable

Properties

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

On this page