Mythosia.AI.Abstractions - Release Notes
v4.2.0
Added
AIModels.Anthropic.ClaudeSonnet5_5identifiesclaude-sonnet-5-5. The additiveClaudeThinkingModeenum exposesAuto,AdaptiveandBetweenTools; existing reasoning/display, request-feature, capability and Run contracts are reused. Mythosia.AI 8.2.0 supplies model validation, explicit up-front thinking controls and signed-history preservation. See Sonnet 5.5 configuration and migration.AIModels.OpenAI.Gpt6_1Solidentifies the publishedgpt-6.1-solmodel. ExistingGpt6Reasoning, Run, request-feature, speed and capability contracts are reused. Mythosia.AI 8.2.0 supplies provider validation and execution.
Compatibility
- Sonnet 5.5 defaults to adaptive/high. Common None maps to high-effort
between_tools; it suppresses up-front thinking while retaining possible tool progress. Minimal is unsupported, and nativeBetweenToolsaccepts only Auto/Low/Medium/High. These are model-specific semantics; existing model identifiers and enum numeric values remain unchanged. - Existing required interface members, constructors, enum values, model identifiers and service defaults remain unchanged.
- GPT-6.1 Sol requires Low, Medium, High, XHigh or Max reasoning; Auto selects Medium. None and Minimal are unsupported for this model. GPT-6 Sol and Luna retain their existing None behavior. See model selection and migration.
v4.1.0
This additive contracts release pairs with Mythosia.AI 8.1.0. Existing required interface members, constructors and enum numeric values remain unchanged.
Added
AIModels.DeepSeek.V4Proidentifies the supported text-onlydeepseek-v4-pro. The Mythosia.AI 8.1.0 core supplies model capabilities and optional Responses execution; Flash remains the default and retired constants keep their original values and warning-only obsolete annotations.AIModels.xAI.Grok4_7identifiesgrok-4.7and reuses existingGrokReasoning, request-feature, speed, capability and Run contracts. The Mythosia.AI 8.1.0 core supplies reasoning validation, request wiring and processing observations; no required interface member or existing enum numeric value changes. See Grok 4.7.AIModels.OpenAI.Gpt6SolandGpt6Lunaidentifygpt-6-solandgpt-6-luna. AdditiveGpt6Reasoning.Noneretains earlier enum numeric values; it is valid for Sol/Luna and rejected for Astra. Existing Run, reasoning, speed and request-feature contracts are reused without new required interface members. The Mythosia.AI 8.1.0 build supplies validation and execution. See model selection and settings.InferenceSpeeddefines ProviderDefault, Standard and Fast without changing model or reasoning effort.AIRequestFeatures.SpeedandWithSpeedrequest extensions reuse optional request-feature contracts. ImmutableAIProcessingInfoandAIRunResult.Processingpreserve per-attempt requested/applied modes; unknown provider reporting stays nullable.AIModelCapabilities.StandardSpeed,.FastSpeedand.GetSpeedSupport(...)describe local tri-state support independently from live account access. OptionalIAIProcessingInfoServiceandGetLastProcessing()expose diagnostics throughIAIServicereferences without adding required members. The Mythosia.AI 8.1.0 implementation supplies execution and observations.AIModels.Anthropic.ClaudeOpus5_5identifiesclaude-opus-5-5. ExistingClaudeReasoningEffort,ClaudeThinkingDisplay, request-feature and Run contracts are reused; no required interface member or existing model default changes. The Mythosia.AI 8.1.0 implementation supplies model-specific validation and preserved-thinking behavior. See usage and migration.
Fixed
- Recognize xAI's explicit
[input_too_large]context-window error, retaining both token counts inContextLengthExceededExceptionand streaming metadata. Unrelated input-size errors, quota errors and server failures still cannot trigger conversation compaction. Verified against a real rejected Grok request.
v4.0.0
This coordinated major release changes public contracts. See the v8 migration guide before upgrading the package family.
Added
AIModelCapabilities,ImageModelCapabilitiesandCapabilitySupportadd immutable provider-neutral support snapshots inMythosia.AI.Models.Capabilities. Supported, Unsupported and Unknown remain distinct. Read-only typed choice lists, nullable model identity and known limits describe available controls without asserting enabled options, account access or all valid combinations.StructuredOutputincludes common prompt/repair fallback, not guaranteed native constrained decoding. No requiredIAIServicemembers are added; query implementations live in the core service and request builder. See capability inspection.Rich Run result (major migration):
AIRun.Resultchanges fromTask<string>toTask<AIRunResult>. The immutable snapshot exposesText, defensively copiedUsageandCitations,Provider, nullableRequestedModeland actualModel,RoundCount,FinishReason, andRawFinishReason.AIFinishReasondefinesUnknown,Stop,MaxTokens,ToolCalls,ContentFilter, andOther. CustomAIRunimplementations must update their override and construct the new result; consumers must rebuild. Ordinary completion andStructuredStreamRun<T>.Resultkeep their existing result types. See migration.RequestedModelis nullable: it captures the explicit model sent, including Perplexity model overrides, and remains null when presets, profiles, or server routing send no single explicit model. It is independent from the actual final responseModel.Completion cancellation contract: the string and Message
IAIService.GetCompletionAsyncsignatures append optionalCancellationToken cancellationToken = default. Existing source callers retain their profile/context positions; custom implementations must update both signatures and propagate the token, and consumers must rebuild. This is an intentional major API change, not an optional capability with a wait-only fallback. The token cancels client execution without guaranteeing provider inference/billing cancellation. See migration.FunctionDefinition.HandlerWithCancellationaddsFunc<Dictionary<string, object>, CancellationToken, Task<string>>without removingHandler; setting either replaces the same underlying handler.FunctionCallResult.IsCancelledidentifies cancellation alongsideIsError = true, including result snapshots. Core execution and the RAG/MCP adapters propagate these semantics without adding requiredIAIServicemembers.ImageQuality,ImageBackground,ImageOutputFormat,ImageResolution,ImageAspectRatio, andImageSizeKindprovide named image choices. ImmutableImageSizefactories distinguish automatic sizing, exact pixels, and resolution/ratio presets.AIModels.OpenAI.GptImage2_5Sunburst,GptImage2_5Flare,GptImage2_5Sunburst_260908, andGptImage2_5Flare_260908identify the GPT Image 2.5 aliases and September 8, 2026 snapshots. Select them through the existingImageGenerationRequest.Model/ImageEditRequest.Model; no new required interface members or image-model default changes are introduced. Provider-specific validation is implemented inMythosia.AI. See the image guide.Perplexity Agent API configuration, hosted-tool, search, and response contracts for the replacement integration. Common messages, runs, citations, and function batches are reused without adding required
IAIServicemembers.AIModels.xAI.GrokImagineImage2_0identifiesgrok-imagine-image-2.0for the existing optionalIImageGenerationService. Image options and provider support are described below.AIModels.xAI.Grok4_6identifiesgrok-4.6.GrokReasoning.XHighis appended without changing earlier enum numeric values. Provider validation and common request-level reasoning for this model are implemented byMythosia.AIv8.0.0; unsupported levels are rejected explicitly.AIModels.Google.Gemini3_7FlashandGemini3_8Flashidentify the generally availablegemini-3.7-flashandgemini-3.8-flashmodels. They reuse the existingGeminiThinkingLeveland commonReasoningLevelcontracts; model-specific validation is provided byMythosia.AIv8.0.0.AIModels.DeepSeek.Flashidentifiesdeepseek-flash(V4.1 Flash).DeepSeekReasoningdefines nativeAuto,Low,High, andMaxeffort values; provider validation, thinking activation, user image input, reasoning events, and tool rounds are implemented by Mythosia.AI v8.0.0 through existing shared contracts.AIModels.Anthropic.ClaudeFable5_1andClaudeMythos5_1expose the new Claude model IDs. Mythos 5.1 requires limited-access approval.ClaudeThinkingDisplay.Updatesrepresents readable progress updates without reasoning summaries.ClaudeThinkingPrefixMismatchBehavior.Errorand.DropBlockdescribe the provider's invalid-prefix handling.ClaudeInputTransformationcarries the provider's transformation type, request-local path, reason, and optional response/model identity.
Changed
Snapshots preserve the exact standard
ReadOnlyCollection<T>/ReadOnlyDictionary<TKey, TValue>wrapper type inside typed containers, including supported backing collections, cycles and shared references. Standard non-genericHashtableandSortedListcopies retain their key comparers. No JSON dependency or public signature change is added.Request/message snapshots retain multidimensional and nonzero-bound array shape, shared references and cycles, and the comparers of standard
Dictionary<,>,SortedDictionary<,>andSortedList<,>containers.default(JsonElement)/ Undefined remains valid snapshot data; document-owned JSON values remain detached. Core usage aggregation reports Int32 overflow instead of returning wrapped counts.Message and function-argument snapshots detach
System.Text.Json.JsonElementandJsonNodevalues from caller-owned documents and mutable nodes without adding a JSON package dependency. Unknown custom reference types retain their existing immutability responsibility.TokenUsage.TotalTokensdocuments preservation of an explicitly reported provider total; Run output sequences permit only one enumeration. Public member signatures remain unchanged by these audit fixes.AIModels.Perplexity.Sonarnow identifiesperplexity/sonarfor the Agent API. Legacy Sonar model selections and Sonar-specific response contracts are removed as an intentional breaking migration ahead of the provider's 2026-09-27 endpoint retirement. See the migration guide.DeepSeek
V4Flash/Chat/Reasonerand OpenAIGpt5,Gpt5Mini,Gpt5Nano,Gpt5Pro,O3, andO3Proconstants carry warning-only[Obsolete]annotations. Their names and original wire values are preserved; no replacement ID is silently substituted by the library. The provider temporarily routesdeepseek-v4-flashto V4.1 Flash; useFlashexplicitly in new code.
Compatibility
- Breaking image-option migration: string
Quality,Background, andOutputFormatbecome enums;SizebecomesImageSize; the separate requestAspectRatioproperty is removed. OutputFormat now defaults toImageOutputFormat.Auto. Update generation and edit callers using the migration guide; method signatures, result types, and image-model defaults remain. Provider adapters validate enum values, sizing modes, and format selectors before HTTP. No string compatibility conversion, image codec, or provider SDK is added. - Existing common enum values are retained. The completion cancellation parameter changes the
IAIServicecontract and requires custom implementation updates and consumer rebuilds. The Perplexity-specific removals and changed Sonar wire ID require migration. Other obsolete model references produce warnings, which callers treating warnings as errors may need to resolve. - These controls are implemented by
Mythosia.AIv8.0.0; the contracts package remains independent of provider SDKs and the full core implementation.
v3.1.0
Added
- GPT-6 Astra contracts โ
AIModels.OpenAI.Gpt6Astra,Gpt6ReasoningwithMax, andGpt6ReasoningModefor Standard/Pro configuration. - Optional run capability โ
IAIRunService,AIRun, andIAIServiceextension bridges expose one execution's result, output events, cancellation, asynchronous disposal, and supported steering. Startup reuses the existingStreamOptionsandAIRequestContexttypes. - Optional request features โ
IAIRequestFeatureService,AIRequestFeatures, common reasoning levels and cache-preservation options, native web-search options, and provider-bound file-search store descriptors. - Fluent request configuration โ
WithReasoning,WithWebSearch, andWithFileSearchretain the concrete service type while delegating to the optional request-feature capability;GetLastCitationsreads its source references. - Citations โ
AICitation,StreamingContent.Citation,StreamingContentType.Citation, andAIRun.Citationscarry provider-supplied web and file references with response/content-local offsets. - Asynchronous function metadata โ
FunctionDefinition.AllowAsync,AiFunctionAttribute.AllowAsync, andFunctionCall.IsAsyncdistinguish an opted-in function declaration from a provider's actual asynchronous invocation. Function-call snapshots preserveIsAsync.
Changed
- Function policy documentation distinguishes ordinary sequential or bounded-parallel batches from the separately bounded pool of native asynchronous handlers. Async results may be delivered as completed subsets with their original call IDs.
- Input-taking
IAIService.StreamAsyncmethods document their planned public withdrawal in the next major release; the existing signatures remain available during the minor transition.
Compatibility
- Additive minor release:
IAIRunServiceandIAIRequestFeatureServiceare optional capabilities, so existing customIAIServiceimplementations gain no required members. Extension calls fail explicitly when the capability is unavailable. - Existing
StreamingContentTypenumeric values are preserved.AIRun.Citationsprovides a default implementation for custom run subclasses. AllowAsyncdefaults tofalse; provider implementations without native asynchronous calls retain ordinary execution. The implementation of these new capabilities is supplied byMythosia.AIv7.1.0; this contracts package does not acquire a dependency on it or on provider SDKs.
v3.0.0
This is the abstractions release paired with Mythosia.AI v7. Follow the v7 migration guide before upgrading.
Added
Claude adaptive-thinking controls โ
ClaudeReasoningEffortrepresentsAuto,Low,Medium,High,XHigh, andMax;ClaudeThinkingDisplayrepresents omitted or summarized reasoning output.GPT-5.6 model contract โ
AIModels.OpenAInow includesGpt5_6(the Sol alias),Gpt5_6Sol,Gpt5_6Terra, andGpt5_6Luna.Gpt5_6Reasoningadds the model family'sMaxeffort, andGpt5_6ReasoningModerepresents standard or pro reasoning execution without inventing agpt-5.6-promodel ID.Claude 5 model IDs โ
AIModels.Anthropic.ClaudeOpus5andClaudeSonnet5expose the generally availableclaude-opus-5andclaude-sonnet-5API models.Claude Mythos 5 model ID โ
AIModels.Anthropic.ClaudeMythos5exposesclaude-mythos-5for approved Project Glasswing customers. Mythos 5 is limited availability, not generally available.IImageGenerationServiceis an optional, provider-neutral contract for services that generate or edit images. ItsDefaultImageModelis deliberately independent fromIAIService.Model, so selecting a chat model cannot accidentally select an image model.Image request and result models โ
ImageGenerationRequest,ImageEditRequest,ImageInput,GeneratedImage, andImageGenerationResultdescribe multi-image generation, ordered reference images, optional masks, output controls, provider/model provenance, request IDs, and token usage without adding a provider dependency.Current OpenAI image model IDs โ
AIModels.OpenAI.GptImage2exposes thegpt-image-2alias andGptImage2_260421exposes its current2026-04-21snapshot without adding either image model to chat-model selectors.Current Gemini model IDs โ
AIModels.Googleadds Gemini 3.6 Flash and Gemini 3.5 Flash-Lite, plus an image-specific catalogue for Gemini 3.1 Flash Image, Gemini 3.1 Flash-Lite Image, and Gemini 3 Pro Image.Current xAI model IDs โ
AIModels.xAIadds Grok 4.5, itsgrok-4.5-latestalias,grok-build-latest, and the current Grok 4.3 aliasesgrok-4.3-latestandgrok-latest.Current Grok reasoning contract โ
GrokReasoningnow representsAuto,None,Low,Medium, andHigh.Autoomits the provider parameter, Grok 4.3 supportsNonethroughHigh, and Grok 4.5 supportsLowthroughHighand cannot disable reasoning.Gemini safety controls โ
GeminiSafetyThresholdrepresents provider-default, disabled, and the supported blocking thresholds without coupling the common image or chat contracts to Google request types.Typed function-call batches โ
FunctionCallBatch,FunctionCallResult, andFunctionCallResultBatchpreserve every call from one assistant response, its provider correlation data, and the matching ordered results.MessageandStreamingContentexpose typed function call/result fields instead of requiring consumers to reconstruct them from metadata.Function execution modes โ
FunctionExecutionModeandFunctionCallingPolicy.ExecutionModeselect sequential or bounded-parallel handler execution. Sequential remains the default;MaxConcurrencylimits parallel handlers while result ordering remains stable.
Changed
- Nullable annotations match the actual contracts โ optional attribute overrides, function handlers, schema descriptions/defaults/enums/items, and other provider-populated values are explicitly nullable. Required names and type identifiers retain non-null defaults, eliminating false consumer warnings without changing the CLR signatures.
Removed
ChatBlock.RemoveFunctionMessages()โ removing function calls while retaining their results creates an invalid conversation. Clear or rebuild the conversation explicitly when a model switch requires a new history.- Retired or deprecated OpenAI model IDs โ
Gpt4Vision,Gpt4oLatest,Gpt5ChatLatest,Gpt5_2Codex,Gpt5_250807,Gpt5Mini_250807,Gpt5Nano_250807, andGpt4_1Nanowere removed instead of being retained as obsolete aliases. - Retired Claude Opus snapshots โ
AIModels.Anthropic.ClaudeOpus4_250514(claude-opus-4-20250514) andClaudeOpus4_1_250805(claude-opus-4-1-20250805) were removed. Opus 4 retired on June 15, 2026, and Opus 4.1 retired on August 5, 2026. UseClaudeOpus4_8for the official direct replacement. GrokReasoning.Offโ useAutoto preserve the provider default without serializingreasoning_effort, orNonefor an explicit non-reasoning Grok 4.3 request.Noneis invalid for always-reasoning Grok 4.5.
Compatibility
- Breaking release for the removed
ChatBlockmember, retired or deprecated model constants, andGrokReasoning.Off. Consumers of the new image contract and typed function batches requireMythosia.AI.Abstractionsv3.0.0 or later.
v2.5.0
Added
ContextLengthExceededExceptionโ the provider rejected the request because the prompt exceeded the model's context window. Carries the window and the rejected prompt's size when the provider reported them, the HTTP status, how many compaction attempts were made, andRecoverySkipReasonโ why recovery could not save it.StreamAsyncnever throws it; there the overflow arrives as an error chunk instead. The legacy callback APIStreamCompletionAsync, which has no round loop, does throw it.AIHttpErrorFactoryโ translates a provider's HTTP failure into that exception, or a plainAIServiceExceptionwhen the body says something else, and builds the metadata for streaming error chunks. Every provider words its errors differently, so detection belongs here rather than in the core or the consuming app: the app should only ever learn that the context overflowed, never how a particular vendor phrases it. Recognises OpenAI'scontext_length_exceededcode, the OpenAI/vLLMmaximum context length is N tokenswording, Anthropic'sprompt is too longand combinedinput length and \max_tokens` exceed context limitforms, and Google'sinput token count (N) exceeds โฆ`.- Detection is deliberately narrow and gated to HTTP 400/413. A false positive is worse than a miss: it makes the core compact the conversation, which deletes messages irreversibly, in response to an unrelated failure. Rate limits and server errors are never considered.
BuildErrorMetadataonly adds keys โerrorandstatus_codeare always present, so existing readers are unaffected.
Deprecated
ChatBlock.RemoveFunctionMessages()now names its removal version (v7.0) instead of "future versions". Dropping function messages leaves function results without their originating call, which the chat/completions wire format rejects.
Compatibility
- Additive minor release; no breaking changes.
v2.4.0
Added
AIModels.Anthropic.ClaudeFable5โclaude-fable-5, Anthropic's new top model tier above Opus (1M context window, 128K max output).
Compatibility
- Additive minor release; no breaking changes.
v2.3.0
Added
- Model id constants โ 2026 refresh (
AIModels):- OpenAI:
Gpt5_5,Gpt5_5_260423,Gpt5_5Pro,Gpt5_5Pro_260423,Gpt5Pro. - Anthropic:
ClaudeOpus4_8,ClaudeOpus4_7. - Google:
Gemini3_1ProPreview,Gemini3_5Flash,Gemini3_1FlashLite. - xAI:
Grok4_3,Grok4_20Reasoning,Grok4_20NonReasoning,GrokBuild0_1. - Perplexity:
SonarReasoningPro.
- OpenAI:
Gpt5_5Reasoningenum โ reasoning effort for GPT-5.5 (None/Low/Medium/High/XHigh).
Removed
- Constants for retired or non-callable models (the underlying models no longer function at runtime):
- xAI:
Grok4(grok-4-0709),Grok4_1Fast(grok-4-1-fast),Grok3(grok-3) โ retired 2026-05-15;Grok4_20MultiAgent(grok-4.20-multi-agent-0309) โ multi-agent API, not chat completions. - Anthropic:
ClaudeSonnet4_250514(claude-sonnet-4-20250514) โ retires 2026-06-15. - Perplexity:
SonarReasoning(sonar-reasoning) โ removed from the API 2025-12-15. - Google:
Gemini3ProPreview(gemini-3-pro-preview) โ shut down 2026-03-09. - OpenAI:
Gpt5_3CodexSpark(gpt-5.3-codex-spark) โ not generally accessible via the standard API.
- xAI:
Compatibility
- Minor release. The removed constants reference models that are already retired/non-functional; code that references them by name requires a one-line update to a current model id.
v2.2.0
Added
- Streaming diagnostics primitives (consumed by
Mythosia.AI's newWithStreamDiagnosticsextension andReadSseLinesAsynchelper).StreamDiagnosticsโ observability snapshot for a single SSE round. Fields:LinesRead,DataLinesProcessed,ParseFailures,AccumulatedTextLength,LastRawLine,Elapsed. Lets callers tell "stream silently ended" apart from "transport error after N chunks".StreamReadExceptionโ wraps the underlying read-time exception (IOException,NotSupportedException,ObjectDisposedException, etc.) and attaches aStreamDiagnosticssnapshot taken at the moment of failure.InnerExceptionpreserves the original.StreamDiagnosticsBuilderโ fluent configurator with independentOnRawLine(Action<string>)andOnComplete(Action<StreamDiagnostics>)hooks. Consumed byservice.WithStreamDiagnostics(d => d.OnRawLine(...).OnComplete(...))inMythosia.AI.
Compatibility
- Additive public API update.
- No existing types or members were removed, renamed, or changed.
v2.1.0
Added
- Round-scoped streaming usage
- Added
StreamingContentType.RoundUsage. - Added
StreamingContent.RoundIndexandStreamingContent.IsFinalRound. StreamingContent.Usagecan now carry one-round usage onRoundUsageevents whileCompletionkeeps cumulative run usage.
- Added
Compatibility
- Additive public API update.
- No existing members were removed or renamed.
v2.0.0
Changed
IAIService.GetCompletionAsyncโ 8 overloads โ 2 (breaking change)GetCompletionAsync(string prompt, AIRequestProfile? profile = null, AIRequestContext? context = null)GetCompletionAsync(Message message, AIRequestProfile? profile = null, AIRequestContext? context = null)- Migration: callers using
GetCompletionAsync(message, context)must switch toGetCompletionAsync(message, context: context).
IAIService.StreamAsyncโ 6 overloads โ 4 (breaking change)StreamAsync(string prompt, CancellationToken cancellationToken = default)StreamAsync(Message message, AIRequestContext? context = null, CancellationToken cancellationToken = default)StreamAsync(string prompt, StreamOptions options, CancellationToken cancellationToken = default)StreamAsync(Message message, StreamOptions options, AIRequestContext? context = null, CancellationToken cancellationToken = default)- Migration: callers using
StreamAsync(message, context, ct)must switch toStreamAsync(message, context: context, ct).
v1.1.0
Added
IFunctionRegisterableโ new interface that marks an AI service as capable of accepting function (tool) registrations at runtime.
Documentation
- Added
Relationship to Microsoft.Extensions.AIsection to README โ a factual comparison table betweenIAIServiceandIChatClientcovering state management, session handling, request parameters, function calling, streaming, conversation summarization, multimodal handling, and token usage tracking.- Exposes a single
void AddFunction(FunctionDefinition function)method. - Allows extension packages (e.g.,
Mythosia.AI.Rag) to register tools onAIServicewithout taking a direct dependency on the fullMythosia.AIcore package. AIServiceinMythosia.AIv5.3.0 implements this interface via explicit interface implementation (IFunctionRegisterable.AddFunctionโFunctions.Add).
- Exposes a single
Purpose
Enables Mythosia.AI.Rag.WithAgenticRag<TService>() to constrain its generic parameter to where TService : IAIService, IFunctionRegisterable, keeping the RAG package dependency-free from the AI core while still being able to register the RAG search tool.
v1.0.0
Initial Release
Extracted core abstractions and shared models from Mythosia.AI into a standalone zero-dependency package.
Added
IAIServiceโ core interface defining the AI completion and streaming contract.- Completion:
GetCompletionAsyncoverloads withstring,Message,AIRequestProfile,AIRequestContext. - Streaming:
StreamAsyncoverloads returningIAsyncEnumerable<string>orIAsyncEnumerable<StreamingContent>. - Properties:
Model,Provider,SystemMessage,StatelessMode,ActivateChat.
- Completion:
Models โ all shared model types previously in
Mythosia.AI:Message,MessageContent(TextContent,ImageContent,AudioContent)ChatBlockโ conversation container with system message and message historyActorRoleโ role enum (System,User,Assistant,Function)AIRequestContextโ per-request context overridesAIRequestProfile,AIRequestPurpose,RequestProfilesโ per-request parameter profilesAIModelsโ model identifier constants for all providersAIProviderโ provider enumSummaryConversationPolicyโ conversation summarization configurationStructuredOutputPolicyโ structured output behavior configurationRoundResultโ function calling round result
Streaming types:
StreamingContent,StreamingContentTypeโ streaming chunk with type discriminationStreamOptionsโ streaming behavior configurationTokenUsageโ token count data (input, output, cached, reasoning)
Function calling types:
FunctionDefinitionโ function schema for LLM tool useFunctionCallingPolicy,FunctionCallModeโ function calling behavior controls
Attributes:
AiFunctionAttributeโ marks methods as AI-callableAiParameterAttributeโ describes function parameters
Enums:
ReasoningEffort,ReasoningSummary,GeminiThinkingLevel,VerbosityExceptions:
AIServiceException,AgentMaxStepsExceededException
Purpose
Enables downstream libraries (e.g., Mythosia.AI.Rag) to depend on the lightweight contract package instead of the full Mythosia.AI implementation, avoiding transitive dependencies on Azure.AI.OpenAI, NJsonSchema, TiktokenSharp, etc.