FieldCure.AssistStudio.Core 0.6.0

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FieldCure.AssistStudio.Core" Version="0.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FieldCure.AssistStudio.Core" Version="0.6.0" />
                    
Directory.Packages.props
<PackageReference Include="FieldCure.AssistStudio.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FieldCure.AssistStudio.Core --version 0.6.0
                    
#r "nuget: FieldCure.AssistStudio.Core, 0.6.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FieldCure.AssistStudio.Core@0.6.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FieldCure.AssistStudio.Core&version=0.6.0
                    
Install as a Cake Addin
#tool nuget:?package=FieldCure.AssistStudio.Core&version=0.6.0
                    
Install as a Cake Tool

FieldCure.AssistStudio.Core

Platform-agnostic AI provider client library for .NET — Claude, OpenAI, Gemini, Ollama, and any OpenAI-compatible endpoint.

NuGet License: MIT

Features

  • Multi-Provider — Claude, OpenAI, Gemini, and Ollama built-in. Implement IAiProvider to 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 IAssistTool for provider-invoked function calls.
  • Token Tracking — Input/output token counts exposed after every request.
  • Platform-Agnostic — Targets net8.0 with 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

License

MIT — Copyright (c) 2026 FieldCure Co., Ltd.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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`)