FieldCure.AssistStudio.Core
0.6.0
See the version list below for details.
dotnet add package FieldCure.AssistStudio.Core --version 0.6.0
NuGet\Install-Package FieldCure.AssistStudio.Core -Version 0.6.0
<PackageReference Include="FieldCure.AssistStudio.Core" Version="0.6.0" />
<PackageVersion Include="FieldCure.AssistStudio.Core" Version="0.6.0" />
<PackageReference Include="FieldCure.AssistStudio.Core" />
paket add FieldCure.AssistStudio.Core --version 0.6.0
#r "nuget: FieldCure.AssistStudio.Core, 0.6.0"
#:package FieldCure.AssistStudio.Core@0.6.0
#addin nuget:?package=FieldCure.AssistStudio.Core&version=0.6.0
#tool nuget:?package=FieldCure.AssistStudio.Core&version=0.6.0
FieldCure.AssistStudio.Core
Platform-agnostic AI provider client library for .NET — Claude, OpenAI, Gemini, Ollama, and any OpenAI-compatible endpoint.
Features
- Multi-Provider — Claude, OpenAI, Gemini, and Ollama built-in. Implement
IAiProviderto add your own. - Streaming — Real-time token-by-token responses via
IAsyncEnumerable<string>. - Vision & Documents — Attach images, PDFs, and DOCX files to conversations.
- Tool / Function Calling — Define tools with
IAssistToolfor provider-invoked function calls. - Token Tracking — Input/output token counts exposed after every request.
- Platform-Agnostic — Targets
net8.0with no Windows dependency. Use from console apps, servers, or any .NET project.
Install
dotnet add package FieldCure.AssistStudio.Core
Quick Start
using FieldCure.AssistStudio.Models;
using FieldCure.AssistStudio.Providers;
// Create a provider
var provider = new ClaudeProvider(apiKey: "sk-ant-...", modelId: "claude-sonnet-4-20250514");
// Simple completion
var request = new AiRequest("What is the capital of France?");
var response = await provider.CompleteAsync(request);
Console.WriteLine(response.Content);
// Streaming
await foreach (var token in provider.StreamAsync(request))
{
Console.Write(token);
}
Supported Providers
| Provider | Streaming | Vision | Documents | Tool Calling |
|---|---|---|---|---|
| Claude (Anthropic) | Yes | Yes | Yes | Yes |
| OpenAI (+ compatible) | Yes | Yes | Yes | Yes |
| Gemini (Google) | Yes | Yes | Yes | Yes |
| Ollama (local) | Yes | Model-dependent | Model-dependent | Model-dependent |
OpenAI provider works with any OpenAI-compatible API (Groq, Azure OpenAI, etc.) by setting a custom
baseUrl.
Custom Provider
Implement IAiProvider to integrate any AI service:
public class MyProvider : IAiProvider
{
public string ProviderName => "MyService";
public string ModelId => "my-model-v1";
public TokenUsage? LastUsage { get; private set; }
// ... implement CompleteAsync, StreamAsync, ListModelsAsync, ValidateConnectionAsync
}
Key Types
| Type | Description |
|---|---|
IAiProvider |
Provider interface — completion, streaming, model listing |
IAssistTool |
Tool/function calling interface |
AiRequest / AiResponse |
Request and response models |
ChatMessage |
Conversation message with role, content, and attachments |
ProviderPreset |
Saved provider configuration (model, temperature, etc.) |
Profile |
System prompt + tool selection preset |
ConversationManager |
Save/load conversations in .astx format |
ProviderFactory |
Create IAiProvider from a ProviderPreset |
Related Packages
- FieldCure.AssistStudio.Controls.WinUI — WinUI 3 chat UI controls built on this library.
License
MIT — Copyright (c) 2026 FieldCure Co., Ltd.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Win32.Registry (>= 5.0.0)
- PdfPig (>= 0.1.13)
- PDFtoImage (>= 5.2.0)
- System.Management (>= 9.0.14)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FieldCure.AssistStudio.Core:
| Package | Downloads |
|---|---|
|
FieldCure.AssistStudio.Controls.WinUI
AI Chat UI Controls for WinUI 3. Supports Claude, OpenAI, Gemini, Ollama and more. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.19.2 | 103 | 5/5/2026 |
| 0.19.1 | 102 | 5/4/2026 |
| 0.19.0 | 83 | 5/4/2026 |
| 0.18.0 | 101 | 4/27/2026 |
| 0.17.0 | 99 | 4/21/2026 |
| 0.16.0 | 95 | 4/14/2026 |
| 0.15.0 | 106 | 4/10/2026 |
| 0.14.0 | 97 | 4/7/2026 |
| 0.13.0 | 104 | 3/31/2026 |
| 0.12.0 | 107 | 3/30/2026 |
| 0.11.0 | 102 | 3/29/2026 |
| 0.10.0 | 100 | 3/24/2026 |
| 0.9.0 | 102 | 3/24/2026 |
| 0.8.0 | 93 | 3/22/2026 |
| 0.7.0 | 97 | 3/21/2026 |
| 0.6.0 | 107 | 3/17/2026 |
| 0.5.0 | 105 | 3/17/2026 |
| 0.4.0 | 102 | 3/17/2026 |
# Release Notes — FieldCure.AssistStudio.Core
## [0.6.0] - 2026-03-17
### Added
- `AppJsonContext` and `IndentedJsonContext` source-generated JSON serializer contexts for trim-safe serialization
### Changed
- `ConversationManager` uses `IndentedJsonContext.Default.ConversationData` instead of reflection-based `JsonSerializerOptions`
---
## [0.5.0] - 2026-03-17
### Added
- Dedicated NuGet package README with Core-specific usage examples and API reference
### Fixed
- GitHub repository URL corrected (`fieldlab` → `fieldcure`)
---
## [0.4.0] - 2026-03-17
### Added
- NuGet package metadata (Company, Copyright, Icon, README, Repository URL, Tags)
- Release notes auto-inclusion in NuGet package
- `publish-nuget.ps1` script for pack → sign → push workflow
---
## [0.3.0] - 2026-03-17
### Added
- Generic file and command tools for agentic workflows (`ReadFileTool`, `WriteFileTool`, `RunCommandTool`, etc.)
- `broadFileSystemAccess` support for tool file operations
---
## [0.2.0] - 2026-03-16
### Added
- Tool calling support for `ClaudeProvider` and `GeminiProvider`
- `PdfCapability` enum with `Auto`, `TextExtraction`, `NativePdf`, `PageAsImage` options
- `PdfCapability` property on `ProviderPreset` for per-preset PDF handling
- `AttachmentProcessor.RenderPdfPages()` for PDF-to-image conversion (via PDFtoImage)
- `PageAsImage` PDF handling in `OpenAiProvider` and `OllamaProvider` for vision models
- `DisplayName` default interface member on `IAssistTool` for human-readable UI labels
- `ProviderFactory` auto-resolves `PdfCapability.Auto` based on provider type
### Fixed
- Gemini tool call ID uniqueness for parallel calls
---
## [0.1.0] - 2026-03-15
### Added
- `IAiProvider` abstraction with `StreamAsync` returning `IAsyncEnumerable<string>`
- Provider implementations: `ClaudeProvider`, `OpenAiProvider`, `GeminiProvider`, `OllamaProvider`
- SSE and NDJSON streaming support
- Model listing (`ListModelsAsync`) for all providers
- `OllamaManager` for local model management (pull, delete, search)
- `OllamaFitPolicy` for automatic model selection based on hardware
- Token tracking (`TokenUsage` model)
- Conversation persistence (`ConversationManager`)
- Hardware detection helpers (`HardwareInfo`)
- Image and document attachment models (`ChatAttachment`)
- Profile and ProviderPreset models
- Tool use abstractions (`IAssistTool`, `ToolCall`, `ToolResult`)