Cannery.Core 1.1.280

dotnet add package Cannery.Core --version 1.1.280
                    
NuGet\Install-Package Cannery.Core -Version 1.1.280
                    
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="Cannery.Core" Version="1.1.280" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cannery.Core" Version="1.1.280" />
                    
Directory.Packages.props
<PackageReference Include="Cannery.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 Cannery.Core --version 1.1.280
                    
#r "nuget: Cannery.Core, 1.1.280"
                    
#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 Cannery.Core@1.1.280
                    
#: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=Cannery.Core&version=1.1.280
                    
Install as a Cake Addin
#tool nuget:?package=Cannery.Core&version=1.1.280
                    
Install as a Cake Tool

Cannery.Core

Authoritative, strongly-typed reference types and the Can registry for the Cannery Crucible AI fabric.

NuGet


What is Cannery.Core?

Cannery.Core is the foundational .NET library for the Cannery Crucible — an AI fabric of tools that enable AI agents and human developers to create agents, apps, and workflows quickly, without the need for infrastructure or foundational software.

It provides three authoritative reference types for addressing any resource across the ecosystem, plus the Can registry that catalogs all available Cans (tools, agents, and capabilities) in the Crucible:

Type Purpose
Curi Canonical identity for any Cannery entity or resource
HttpUri Strongly-typed HTTP/HTTPS endpoint reference
AzureResourceId Authoritative reference to an Azure cloud resource
Can Registry Catalog of all registered Cans in the Crucible

Curi — Cannery URI

Curi is a .NET value object representing a canonical address for any entity or resource in the Cannery/Crucible ecosystem (Curator, Codex, Conductor, Compliance, etc.). It enables stable, typed references with optional versioning and anchors for deterministic narratives and evidence.

  • Strongly typed: Prevents stringly-typed errors and enables validation, normalization, and parsing.
  • Portable: Designed for use across all domain, application, and infrastructure layers.
  • Interoperable: Includes an EF Core value converter (CuriConverter) for string/NVARCHAR persistence.
  • Grammar: scheme://type/canonicalKey[?v=][#fragment]
using Cannery.Core.Curi;

// Construct from string (canonicalKey is a system-generated UUIDv7-based key)
var curi = Curi.Parse("curator://catalog/CUR-Catalog-018e8e7e-7b2a-7e6b-bf7e-1a2b3c4d5e6f?v=1");

// Validate
if (!curi.Validate(out var error)) throw new Exception(error);

// Normalize (lowercases scheme and type)
var normalized = curi.Normalize();

// Build — canonical key is generated automatically; callers supply only the CanType
var built = Curi.Build(CanTypes.CuratorResource, version: 1);

// Use as string
string s = curi; // implicit
Console.WriteLine(curi); // ToString()

HttpUri

HttpUri is a strongly-typed value object for HTTP/HTTPS endpoint references. It wraps a validated URI and ensures only well-formed HTTP or HTTPS addresses are used as resource references across agents and workflows.

using Cannery.Core.HttpUri;

var endpoint = HttpUri.Parse("https://api.example.com/v1/agents");
Console.WriteLine(endpoint.Value);

AzureResourceId

AzureResourceId is a strongly-typed value object representing an authoritative reference to an Azure cloud resource (e.g., a storage account, service bus, App Service, or AI service). It parses and validates the standard Azure Resource Manager resource ID format.

using Cannery.Core.AzureResourceId;

var resourceId = AzureResourceId.Parse(
    "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.CognitiveServices/accounts/my-ai");

Console.WriteLine(resourceId.SubscriptionId);
Console.WriteLine(resourceId.ResourceGroup);
Console.WriteLine(resourceId.ResourceName);

Can Registry

The Can registry is the catalog of all Cans registered in the Cannery Crucible. A Can is a self-contained unit of capability — an agent, tool, or workflow module — that can be discovered and orchestrated by the Crucible without tight coupling between Cans.

using Cannery.Core.Registry;

// Look up a registered Can by its type
var canType = CanTypes.CuratorResource;
var entry = CanTypeRegistry.Get(canType);

Console.WriteLine(entry.FullId);   // Full identifier
Console.WriteLine(entry.ShortId);  // Short/display identifier

EF Core Persistence

Use the included value converter for Curi properties:

modelBuilder.Entity<MyEntity>()
    .Property(e => e.Curi)
    .HasConversion(new CuriConverter());

API Reference

Curi

  • public readonly record struct Curi(string Value)
  • bool Validate(out string error)
  • Curi Normalize()
  • static Curi Build(CanType canType, int? version = null, string? fragment = null)
  • Implicit conversion to string, explicit from string

Curi Grammar

scheme://type/canonicalKey[?v=version][#fragment]
  • scheme: e.g., curator, codex, conductor, crucible
  • type: e.g., catalog, chronicle, playbook, chat-session
  • canonicalKey: system-generated, opaque, UUIDv7-based identifier (e.g., CUR-Catalog-018e8e7e-7b2a-7e6b-bf7e-1a2b3c4d5e6f) — never supplied by callers
  • version: optional integer via ?v= query parameter
  • fragment: optional anchor (e.g., #section=ch1)

See docs/cannery/cannery-uri.md for the full CURI specification.


License

MIT


Contributing

Contributions, issues, and feature requests are welcome! Please see CONTRIBUTING.md.


Acknowledgements

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.
  • net10.0

    • No dependencies.

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
1.1.280 0 6/9/2026
1.1.278 37 6/8/2026
1.1.276 36 6/7/2026
1.1.274 41 6/5/2026
1.1.272 91 6/1/2026
1.1.268 97 5/30/2026
1.1.266 99 5/29/2026
1.1.264 102 5/28/2026
1.1.262 102 5/26/2026
1.1.259 90 5/25/2026
1.1.257 93 5/25/2026
1.1.253 94 5/25/2026
1.1.251 93 5/23/2026
1.1.249 94 5/21/2026
1.1.247 93 5/21/2026
1.1.245 81 5/20/2026
1.1.243 94 5/19/2026
1.1.241 89 5/19/2026
1.1.239 97 5/16/2026
1.1.236 92 5/16/2026
Loading failed