AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession
0.1.0
dotnet add package AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession --version 0.1.0
NuGet\Install-Package AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession -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.Gdl.Parse.IdeSession" 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.Gdl.Parse.IdeSession" Version="0.1.0" />
<PackageReference Include="AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession" />
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.Gdl.Parse.IdeSession --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession, 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.Gdl.Parse.IdeSession@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.Gdl.Parse.IdeSession&version=0.1.0
#tool nuget:?package=AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession
Parser for the gates table of ide-session GDL catalogs: gate ids, reject conditions and verifier references into a typed gate catalog with stable diagnostics.
What you get
IdeSessionCatalogParser.parseText— one call from catalog text plus a source path to anIdeSessionCatalogParseResult(Catalogoption +Diagnosticsarray);parseaccepts pre-readAuthoringLinelists- Finds the single
gates tableblock anywhere in a*.catalog.gdldocument and parses its pipe-table rows:gate— stable gate id (required per row; rows without it reportide-session.gates.row)reject-when— human-readable condition under which the gate rejectscode— verifier reference (which check proves/disproves the condition)
- The typed result (
IdeSessionGateCatalog { SourcePath; Gates }, rowsIdeSessionGateRow { GateId; RejectWhen; Code }) comes fromAIGuiders.Platform.Modeling.IdeSession.GateCatalog - Stable diagnostic codes for CI assertions:
ide-session.gates.missing— nogates tableblock in the fileide-session.gates.unclosed— block not terminated byend gateside-session.gates.row— a row missing thegatecolumnide-session.gates.empty— table present but no usable rows
Quick start
open AIGuiders.Platform.Modeling.Gdl.Parse.IdeSession
let result =
IdeSessionCatalogParser.parseText
"""
catalog ide-session
gates table
| gate | reject-when | code |
| types-check | typecheck failed or not run | HoareChecker.checkTypes |
| scope-leak | patch scope wider than change | GraphPatch.scope |
end gates
"""
"ide-session.catalog.gdl"
let catalog = result.Catalog.Value // None + `ide-session.gates.missing` when the table is absent
let gate = catalog.Gates.[0] // { GateId = "types-check"; RejectWhen = ...; Code = ... }
Problem
- Editor/IDE session pipelines need go/no-go gates ("reject when typecheck failed", "reject when a change outscopes its patch") — but those rules live as scattered checks in code, with no single list of what gates exist, what they reject on, or what verifies them.
- When a gate list does exist as text, it is usually a markdown table nobody parses: no line-precise errors, no stable codes, nothing for CI to assert against.
Solution
- The gate list becomes a typed table inside the session's catalog document: one parser call yields the gate rows plus stable diagnostic codes, so gate definitions can be added or reviewed like code.
- Gate conditions stay declarative strings (
reject-whenprose,codeverifier reference) — hosts resolve them to real checks; the parser stays dependency-free. - Battle-tested as the F# SSOT mirror of the ide-session gate catalog per FSHARP ADR-0004 under the session orchestrator model of ADR-0062.
When not to use
- Full catalog parsing — this parser deliberately reads only the
gates tableand ignores every other catalog section (commands, channels, defaults, ...); takeAIGuiders.Platform.Modeling.Gdl.Parse.Catalogfor the rest of the document. - Gate enforcement —
reject-whenandcodeare plain strings; nothing here compiles or evaluates the conditions. - A gates-free catalog is a hard failure by design: without a
gates tablethe result isCatalog = Noneplus a diagnostic, even when the rest of the catalog file is valid.
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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- AIGuiders.Platform.Modeling.Gdl.Authoring (>= 0.1.0)
- AIGuiders.Platform.Modeling.IdeSession.GateCatalog (>= 0.1.0)
- FSharp.Core (>= 10.1.401)
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 | 45 | 10/24/2026 |