Skip to main content
Version: 1.2

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, including name-optional creation for named managers and source-required creation for source-aware managers
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, IDataSourceContentManager, IAIDataSourceIndexingService, IAIDataSourceIndexingQueueExternal data source registration, retrieval, and asynchronous synchronization
ISearchIndexManager, ISearchDocumentManager, ISearchDocumentHandler, IVectorSearchServiceSearch-index, vector-search, and post-write document event abstractions
IDataSourceDocumentReaderFile and content ingestion by source type
IIndexProfileHandlerIndex-profile validation, field definitions, and provider-specific schema hooks

Indexing and data-source extension reference​

These are the primary extension points behind asynchronous data-source synchronization. For end-to-end flow details, see Data Sources.

InterfaceMethodsParameters
IAIDataSourceIndexingServiceSyncAllAsync, SyncDataSourceAsync, SyncSourceDocumentsAsync overloads, RemoveSourceDocumentsAsync overloads, DeleteDataSourceDocumentsAsyncdataSource: mapped AI data-source definition; sourceIndexProfileName: source profile name to scope partial sync/removal; documentIds: source document ids to process; cancellationToken: stops the operation.
IAIDataSourceIndexingQueueQueueSyncDataSourceAsync, QueueDeleteDataSourceAsync, QueueSyncSourceDocumentsAsync, QueueRemoveSourceDocumentsAsyncdataSource: mapped AI data-source definition to enqueue; sourceIndexProfileName: source profile name that produced the event; documentIds: source ids to refresh or remove; cancellationToken: stops queue submission.
ISearchDocumentHandlerDocumentsAddedOrUpdatedAsync, DocumentsDeletedAsyncprofile: source index profile that completed the write/delete; documentIds: successfully mutated source document ids; cancellationToken: stops follow-up work.
IIndexProfileHandlerValidateAsync, GetFieldsAsync, SynchronizedAsync, ResetAsync, DeletingAsyncindexProfile: profile being validated, synchronized, reset, or deleted; result: validation result collector used by ValidateAsync; cancellationToken: stops provider-specific work.

IIndexProfileHandler​

Provider packages implement this contract to define schema, validation, and lifecycle behavior for search index profiles.

public interface IIndexProfileHandler
{
ValueTask ValidateAsync(
SearchIndexProfile indexProfile,
ValidationResultDetails result,
CancellationToken cancellationToken = default);

ValueTask<IReadOnlyCollection<SearchIndexField>> GetFieldsAsync(
SearchIndexProfile indexProfile,
CancellationToken cancellationToken = default);

Task SynchronizedAsync(SearchIndexProfile indexProfile, CancellationToken cancellationToken = default);
Task ResetAsync(SearchIndexProfile indexProfile, CancellationToken cancellationToken = default);
Task DeletingAsync(SearchIndexProfile indexProfile, CancellationToken cancellationToken = default);
}
MethodWhat it doesParameters
ValidateAsync(indexProfile, result, cancellationToken)Validates provider-specific profile settings before the profile is saved or synchronized.indexProfile: the profile being validated. result: the validation collector to populate. cancellationToken: stops validation work.
GetFieldsAsync(indexProfile, cancellationToken)Returns the provider-specific search field definitions for the profile.indexProfile: the profile whose schema is being built. cancellationToken: stops field generation.
SynchronizedAsync(indexProfile, cancellationToken)Runs after the profile has been synchronized to the remote provider.indexProfile: the profile that finished synchronization. cancellationToken: stops post-sync work.
ResetAsync(indexProfile, cancellationToken)Clears provider-specific state before a rebuild or reprovisioning operation.indexProfile: the profile being reset. cancellationToken: stops the reset.
DeletingAsync(indexProfile, cancellationToken)Runs before a profile is deleted so provider-specific cleanup can happen first.indexProfile: the profile being deleted. cancellationToken: stops delete preparation.

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 Overview.