Skip to content

Reference

PackageDescription
InControl.CoreDomain models, conversation types, assistant profiles, plugin manifest types, policy types, and shared abstractions
InControl.InferenceLLM backend abstraction layer with streaming chat, model management, and health checks. Includes Ollama implementation
Terminal window
dotnet add package InControl.Core
dotnet add package InControl.Inference
var client = inferenceClientFactory.Create("ollama");
await foreach (var token in client.StreamChatAsync(messages))
{
Console.Write(token);
}

InControl ships three built-in assistant profiles. Profiles are immutable records that control tone, verbosity, explanation level, and risk tolerance.

ProfileToneVerbosityExplanationRisk Tolerance
DefaultProfessionalConciseOn requestModerate
MinimalProfessionalBriefMinimalLow
DetailedProfessionalDetailedProactiveHigh

Plugins extend InControl through a manifest-validated, sandboxed system. To create a plugin:

  1. Define a PluginManifest with your plugin’s ID, version, permissions, and capabilities.
  2. Extend PluginBase and override OnExecuteAsync to handle actions.
  3. Package the plugin with its manifest.

Plugins declare permissions for file access, memory, network, UI, conversation context, and settings. The manifest validator enforces consistency between declared risk levels and requested permissions.

Risk levels determine what a plugin can do:

LevelNameAllowed operations
1ReadOnlyRead-only operations, no side effects
2LocalMutationCan modify local data (files, memory)
3NetworkCan access network through ConnectivityManager
4SystemAdjacentReserved, not available

InControl uses structured error codes organized by category:

RangeCategoryExamples
0-99GeneralUnknown, InvalidArgument, Timeout, Cancelled
100-199ConnectionConnectionFailed, ConnectionTimeout, HostNotFound
200-299InferenceModelNotFound, ContextExceeded, StreamInterrupted
300-399StorageFileNotFound, PermissionDenied, CorruptedData
400-499ConfigurationConfigurationInvalid, ConfigurationMissing
500-599ValidationValidationFailed, RequiredFieldMissing
600-699Assistant ToolsToolExecutionFailed, ToolPermissionDenied

Every error includes a code, message, and severity (Low, Medium, High, Critical) with an optional hint for resolution.

Three built-in health checks report system readiness:

CheckCategoryWhat it verifies
AppHealthCheckApplicationApplication state and configuration
InferenceHealthCheckInferenceBackend connection, model availability
StorageHealthCheckStorageFile system access, disk space
AspectDetail
Data accessedLocal Ollama API (localhost), chat history in local storage, model configuration files
Data NOT accessedNo cloud sync, no telemetry, no analytics
PermissionsLocalhost network (Ollama API), file system for chat history. MSIX sandboxed
Support bundlesNever include conversation content or secrets. Sanitized configs only.

See SECURITY.md for vulnerability reporting.