Wino.Mail.AI.OpenAI 0.1.0-alpha.37

This is a prerelease version of Wino.Mail.AI.OpenAI.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Wino.Mail.AI.OpenAI --version 0.1.0-alpha.37
                    
NuGet\Install-Package Wino.Mail.AI.OpenAI -Version 0.1.0-alpha.37
                    
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="Wino.Mail.AI.OpenAI" Version="0.1.0-alpha.37" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Wino.Mail.AI.OpenAI" Version="0.1.0-alpha.37" />
                    
Directory.Packages.props
<PackageReference Include="Wino.Mail.AI.OpenAI" />
                    
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 Wino.Mail.AI.OpenAI --version 0.1.0-alpha.37
                    
#r "nuget: Wino.Mail.AI.OpenAI, 0.1.0-alpha.37"
                    
#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 Wino.Mail.AI.OpenAI@0.1.0-alpha.37
                    
#: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=Wino.Mail.AI.OpenAI&version=0.1.0-alpha.37&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Wino.Mail.AI.OpenAI&version=0.1.0-alpha.37&prerelease
                    
Install as a Cake Tool

Wino Mail AI

Mail-intelligence infrastructure shared by Wino Mail and Wino Mail API.

The solution separates four concerns:

  • provider-neutral mail, artifact and metering contracts;
  • deterministic HTML sanitization, visible-text extraction and content hashing;
  • OpenAI structured generation, the current implementation of the summarization stage;
  • the TypeSafe Jev adapter, the current implementation of the classification stage.

Processing is classification first, summarization second. Classification answers a fixed set of typed questions for every selected message — one Noul per smart label, one Noul for briefing inclusion, one Score for urgency and one Choice for the single action the recipient would take. Summarization writes a headline and a one-line summary, and only for the messages classification included in the briefing.

Urgency is a Score rather than a Choice because its levels are ordered: the answer is a position that can land between two levels, so the cut points stay tunable in code. Every raw probability behind a classification is kept in MailClassificationSignals, which is what lets a threshold be retuned by re-reading stored results instead of reclassifying a mailbox.

The two stages are named for what they do, not for the models behind them. TypeSafe's Jev implements classification today and OpenAI implements summarization; either can be replaced without changing MailClassificationArtifact or MailSummaryArtifact.

Jev returns typed, calibrated answers and never generates free-form text. It also reads dates as text rather than ordered quantities and cannot count or do arithmetic, so no caller may ask it for dates, totals or multi-hop conclusions. Keep that work in application code: JevMailClassifier projects a message's age as words such as "4 days ago" precisely because the ordering is done here rather than asked for. Its accuracy degrades when unrelated context is present, so JevMailClassifier projects a deliberately tight state.

Question wording and thresholds are supplied by the caller and belong in server configuration. Calibrating a threshold must never require a contract change.

The packages are published publicly on nuget.org. The workflow requires the repository NUGET_API_KEY secret and verifies every package after publication.

docs/architecture.md describes the pipeline these packages compose, including the identity and freshness rules and the configuration boundary.

Build

dotnet restore Wino.Mail.AI.slnx
dotnet build Wino.Mail.AI.slnx --no-restore
dotnet test Wino.Mail.AI.slnx --no-build

Tests that call a paid provider are skipped unless WINO_AI_LIVE_TESTS=1 and WINO_AI_OPENAI_TEST_KEY are both set, so a normal run costs nothing.

No NuGet credentials belong in source control. Configure NUGET_API_KEY as a GitHub Actions repository secret before dispatching the public publication workflow.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha.38 0 9/20/2026
0.1.0-alpha.37 0 9/20/2026
0.1.0-alpha.36 0 9/20/2026
0.1.0-alpha.35 36 9/19/2026
0.1.0-alpha.34 60 9/9/2026
0.1.0-alpha.33 67 9/3/2026
0.1.0-alpha.32 80 8/17/2026
0.1.0-alpha.29 76 8/15/2026
0.1.0-alpha.23 73 8/13/2026
0.1.0-alpha.22 67 8/13/2026
0.1.0-alpha.21 61 8/12/2026
0.1.0-alpha.20 86 8/12/2026
0.1.0-alpha.19 74 8/12/2026
0.1.0-alpha.18 71 8/12/2026
0.1.0-alpha.17 72 8/12/2026
0.1.0-alpha.15 71 8/12/2026
0.1.0-alpha.11 71 8/9/2026
0.1.0-alpha.10 64 8/9/2026
0.1.0-alpha.9 71 8/9/2026
0.1.0-alpha.8 74 8/6/2026
Loading failed