AIGuiders.Platform.Modeling.Ide.Session 0.1.0

dotnet add package AIGuiders.Platform.Modeling.Ide.Session --version 0.1.0
                    
NuGet\Install-Package AIGuiders.Platform.Modeling.Ide.Session -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.Ide.Session" 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.Ide.Session" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="AIGuiders.Platform.Modeling.Ide.Session" />
                    
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.Ide.Session --version 0.1.0
                    
#r "nuget: AIGuiders.Platform.Modeling.Ide.Session, 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.Ide.Session@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.Ide.Session&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=AIGuiders.Platform.Modeling.Ide.Session&version=0.1.0
                    
Install as a Cake Tool

AIGuiders.Platform.Modeling.Ide.Session

IDE session model: solution graphs, project lifecycle phases, capability topologies, relation graphs, frozen snapshots, and the revision ledger — the F# SSOT for tooling session state.

What you get

  • ProjectNode + ProjectKind — projects as DotNet (C#/F#), Node, Gdl, or Planet (language-id keyed); ProjectId is a thin alias over the Core identity
  • LifecyclePhase — Unloaded → DesignTime → CompileTime → RunTime → TestTime with canAdvanceTo ordering
  • Capability model — CapabilityAttributes (Topology: in-process / out-of-process / subprocess-tool / adaptive; Warmth, CostTier, Scope) and ProjectCapabilityCatalog.forKind defaults per project kind
  • SolutionGraph / WorkspaceGraph / RelationGraph — projects, documents, project-reference and dependency relations; GraphPatch, GraphValidation
  • FrozenSnapshot.freezeTree — immutable freeze of a project closure; RevisionLedger.reserve — monotone revisions
  • SessionRuntime / SessionOrchestrator — the session state machine over graph + registry + contents
  • Ops layers — BuildDiagnosticOps (ingest build diagnostics), DiagnosticIndexOps, DependencyRelationOps, CorrespondenceRelation* (ADR↔code anchors), Hoare obligations, RefactorPlan, SceneProjection, TypeSystemProfile, InvalidationScope
  • WorkspaceView — the flat projection consumers see (revision, anchor, mode, projects, documents)

Quick start

open AIGuiders.Platform.Modeling.Ide.Session

// Lifecycle ordering
LifecyclePhase.canAdvanceTo DesignTime CompileTime   // true
LifecyclePhase.canAdvanceTo RunTime DesignTime       // false

// A project node with default capabilities for an F# library
let proj =
    ProjectNode.create
        (ProjectId.create @"D:\repo\src\App\App.fsproj")
        (DotNet { Language = FSharp })
        @"D:\repo\src\App\App.fsproj"
        []   // capabilities — ProjectCapabilityCatalog.forKind fills the defaults

// Capability defaults: F# compiler services run out-of-process, design-time
let attrs = CapabilityAttributes.defaults OutOfProcess DesignTime

Problem

  • IDE and tooling state scatters across models:
    • project trees know files but not phases; build systems know diagnostics but not which project owns them
    • "what is loaded right now" is answered differently by every consumer — full graph, frozen copy, per-project view
    • revisions are timestamps or counters, each consumer inventing its own
  • So two features looking at "the same session" disagree.

Solution

  • One graph + one lifecycle + one ledger: phases order loading, capabilities declare execution topology, freezes give immutable point-in-time views, revisions come from a single ledger.
  • Pure model — ports (.Ports.DotNet, .Ports.Workspace) feed it pre-loaded topology; no disk IO inside.
  • Battle-tested as the F# SSOT behind the Guiders session orchestrator — ADR-0062 · FSHARP ADR-0004.

When not to use

  • Loading solutions or reading disk — the ports packages do that; this model is pure.
  • Running compiler services — capabilities carry topology markers; execution lives in the host.
  • Language-level analysis — diagnostics/relations ingest here, parsing and language queries live in the Language packages.
  • Small scripts that just need an MSBuild model — this graph buys you lifecycle and freezing; a plain project list is cheaper.

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 (4)

Showing the top 4 NuGet packages that depend on AIGuiders.Platform.Modeling.Ide.Session:

Package Downloads
AIGuiders.Platform.Modeling.Language.Adapters.Fcs

F# Compiler Service backend for Language Resolver Center.

AIGuiders.Platform.Modeling.Ide.Session.Ports.DotNet

slnx/sln/csproj → SolutionGraph port (DotNetWorkspace.Core).

AIGuiders.Platform.Modeling.CodeCenter

Federation Code Center document session SSOT — structural edits, Λ_doc ledger, replay undo.

AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace

md/json/toml/yaml document tree + navigation links → WorkspaceGraph (physical layer port).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 96 10/24/2026