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
<PackageReference Include="AIGuiders.Platform.Modeling.Ide.Session" Version="0.1.0" />
<PackageVersion Include="AIGuiders.Platform.Modeling.Ide.Session" Version="0.1.0" />
<PackageReference Include="AIGuiders.Platform.Modeling.Ide.Session" />
paket add AIGuiders.Platform.Modeling.Ide.Session --version 0.1.0
#r "nuget: AIGuiders.Platform.Modeling.Ide.Session, 0.1.0"
#:package AIGuiders.Platform.Modeling.Ide.Session@0.1.0
#addin nuget:?package=AIGuiders.Platform.Modeling.Ide.Session&version=0.1.0
#tool nuget:?package=AIGuiders.Platform.Modeling.Ide.Session&version=0.1.0
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 asDotNet(C#/F#),Node,Gdl, orPlanet(language-id keyed);ProjectIdis a thin alias over the Core identityLifecyclePhase—Unloaded → DesignTime → CompileTime → RunTime → TestTimewithcanAdvanceToordering- Capability model —
CapabilityAttributes(Topology: in-process / out-of-process / subprocess-tool / adaptive;Warmth,CostTier,Scope) andProjectCapabilityCatalog.forKinddefaults per project kind SolutionGraph/WorkspaceGraph/RelationGraph— projects, documents, project-reference and dependency relations;GraphPatch,GraphValidationFrozenSnapshot.freezeTree— immutable freeze of a project closure;RevisionLedger.reserve— monotone revisionsSessionRuntime/SessionOrchestrator— the session state machine over graph + registry + contents- Ops layers —
BuildDiagnosticOps(ingest build diagnostics),DiagnosticIndexOps,DependencyRelationOps,CorrespondenceRelation*(ADR↔code anchors),Hoareobligations,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 | Versions 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. |
-
net10.0
- AIGuiders.Platform.Modeling.Build (>= 0.1.0)
- AIGuiders.Platform.Modeling.Core (>= 0.1.0)
- AIGuiders.Platform.Modeling.Documentation.Correspondence (>= 0.1.0)
- AIGuiders.Platform.Modeling.LanguageIntelligence.Relations (>= 0.1.0)
- AIGuiders.Platform.Modeling.Navigation (>= 0.1.0)
- AIGuiders.Platform.Modeling.Paths (>= 0.1.0)
- FSharp.Core (>= 10.1.401)
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 |