AIGuiders.Platform.Modeling.Routing 0.1.0

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

AIGuiders.Platform.Modeling.Routing

Route refusal algebra — two pure helpers that turn a failed route into an honest refusal outcome.

What you get

  • RouteRefusal.refuse — route a refusal through your own factory: refuse factory raw reason go is factory raw reason go, made explicit at the refusal site
  • RouteRefusal.outcomeNotOk — map a failed RoutedIntent (from AIGuiders.Platform.Modeling.Core) into an IntentOutcome:
    • Ok = false, route identity fields carried over (Raw, Verb, Go, Cmd)
    • Pulse defaults to the route's Reason when no override is passed
    • Reason defaults to "route_not_ok" when the route carries none
    • unset outcome fields (Action, Seat, Path, DocId, Ship) are left default

Quick start

open AIGuiders.Platform.Modeling.Core
open AIGuiders.Platform.Modeling.Routing

let route : RoutedIntent =
    { Verb = "Buffer"; Raw = "read path=foo"; Ok = false
      Go = "buffer"; Organ = ""; Path = ""; Detail = ""
      Scene = ""; Cmd = ""; OldString = ""; NewString = ""
      Op = ""; Reason = "no buffer open" }

let refused : IntentOutcome = RouteRefusal.outcomeNotOk route None
// refused.Ok = false; refused.Reason = "no buffer open"; refused.Pulse = "no buffer open"

Problem

  • Every command router ends the same way: the input parsed to a route, the route refused (no target, bad args, seat busy) — and now someone must turn that failed route into an outcome the host can show:
    • which route fields survive into the refusal
    • what the pulse line says when nobody set one
    • what the reason says when there was none
  • Hand-rolled per host, this copying drifts: one host forgets the Reason default, another invents a different pulse rule.

Solution

  • Refusal as named algebra instead of per-host field copying: one function owns the route-to-outcome mapping, defaults included.
  • The F# half of the intent-organ seam (parse → Route, route + override → Execute lives in the C# IIntentOrgan host, platform ADR-0010); consumed cross-language by the platform smoke tests, extraction mapped in FSHARP ADR-0003.

When not to use

  • Routing itself — this package neither parses raw input nor picks an organ; you bring your own Route/Execute (the IIntentOrgan seam is the C# Execution layer).
  • It is deliberately tiny: two functions over Core shapes, nothing else — if you need dispatch, retries or queuing, that is not here and is not planned here.

Learn more


MIT · Source & issues · part of the Guiders federation

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 56 10/24/2026