Skip to main content

Interface Reference

This repository exposes many public interfaces across its abstraction packages. Rather than duplicating every signature in a long manually maintained page, this document maps the important contract groups to the packages and source folders that own them.

Source packages

AreaSource package
Core models and catalog contractssrc\Abstractions\CrestApps.Core.Abstractions
Infrastructure and indexing contractssrc\Abstractions\CrestApps.Core.Infrastructure.Abstractions
AI runtime contractssrc\Abstractions\CrestApps.Core.AI.Abstractions
Provider and protocol extensionssrc\Primitives\CrestApps.Core.AI.*

Foundational contracts

Use these contracts when you are building reusable storage or management infrastructure:

Interface familyPurpose
IReadCatalog<T>, ICatalog<T>Query and mutate catalog-backed data
IReadCatalogManager<T>, ICatalogManager<T>Validation and lifecycle handling over catalogs
INamedCatalog<T>, ISourceCatalog<T>, related managersName-based and source-based lookup patterns
ICatalogEntryHandler<T>Hooks for create, update, and delete events
INameAwareModel, IDisplayTextAwareModel, ISourceAwareModelCommon model markers used across the framework

AI runtime contracts

These contracts define the provider-agnostic AI surface:

Interface familyPurpose
IAIClientFactory, IAIClientProviderResolve provider-specific chat, embedding, image, and speech clients
IAICompletionService, IAICompletionContextBuilderDirect completion flow and prompt/context assembly
IOrchestrator, IOrchestratorResolver, IOrchestrationContextBuilderAgentic orchestration and execution loops
IToolRegistry, IToolRegistryProvider, IAIToolAccessEvaluatorTool discovery, registration, and access control
IAIProfileManager, IAIProfileStore, IAIDeploymentManagerProfiles, deployments, and runtime configuration

Chat and response contracts

Use these when you are building interactive experiences:

Interface familyPurpose
IAIChatSessionManager, IAIChatSessionHandlerSession persistence and lifecycle handling
IChatInteractionSettingsHandlerChat-surface configuration and feature toggles
IChatResponseHandler, IChatResponseHandlerResolverDeferred, streaming, or externalized response delivery
IChatNotificationSender, IChatNotificationTransportNotification and relay workflows
IExternalChatRelay* interfacesExternal relay integrations and transport-specific behavior

Memory, documents, and retrieval

These contracts support RAG-style applications:

Interface familyPurpose
IAIMemoryStore, IAIMemorySearchService, IMemoryVectorSearchServiceLong-term memory persistence and semantic retrieval
IAIDataSourceStore, IDataSourceContentManagerExternal data source registration and content retrieval
ISearchIndexManager, ISearchDocumentManager, IVectorSearchServiceSearch-index and vector-search abstractions
IDataSourceDocumentReaderFile and content ingestion by source type

Provider and protocol extensions

Provider packages add focused extension points for specific transports and SDKs:

PackageExamples
CrestApps.Core.AI.OpenAIOpenAI client and completion configuration
CrestApps.Core.AI.OpenAI.AzureAzure OpenAI integration contracts
CrestApps.Core.AI.McpMCP client, server, prompt, and resource abstractions
CrestApps.Core.AI.A2AA2A client and host support contracts
CrestApps.Core.AI.CopilotCopilot-specific credential and orchestration contracts

How to use this page

  1. Find the contract family you need.
  2. Open the owning package in src\Abstractions or src\Primitives.
  3. Use the source for the exact current signature.

For end-to-end usage patterns, pair this page with Core Overview, Core Services, and Orchestration.