AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace
0.1.0
dotnet add package AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace --version 0.1.0
NuGet\Install-Package AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace -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.Ports.Workspace" 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.Ports.Workspace" Version="0.1.0" />
<PackageReference Include="AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace" />
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.Ports.Workspace --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.Ide.Session.Ports.Workspace, 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.Ports.Workspace@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.Ports.Workspace&version=0.1.0
#tool nuget:?package=AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace
Workspace document graph port: pure link extraction between documents (markdown links, quoted path literals) from pre-loaded snapshots — .md/.json/.toml/.yaml.
What you get
WorkspaceDocumentSnapshot— one pre-loaded document:Path,Content,LastWriteUtcWorkspaceLinks.linksFromSnapshots— the physical layer of the workspace graph:- markdown documents: inline
[text](target)links - json/toml/yaml: quoted string literals ending in a document extension
- external refs (
http(s),mailto:,#anchor) dropped; targets resolved against the document dir and kept only when they are known documents
- markdown documents: inline
WorkspaceGraphPort.build— snapshots →WorkspaceGraph(root + paths + links)WorkspaceGraphPort.fingerprint—root|docs=N|latestWriteUtcchange stampWorkspaceLinks.extensions/isDocument— the closed document extension set (.md.json.toml.yaml.yml)
Quick start
open AIGuiders.Platform.Modeling.Ide.Session.Ports.Workspace
// Pre-loaded snapshots (you read the files; the port stays pure)
let snapshots =
[ { Path = @"D:\docs\README.md"; Content = "See [setup](setup.md)."; LastWriteUtc = System.DateTime.UtcNow }
{ Path = @"D:\docs\setup.md"; Content = "# Setup"; LastWriteUtc = System.DateTime.UtcNow } ]
let graph = WorkspaceGraphPort.build @"D:\docs" snapshots
// README.md --link--> setup.md is now an edge in the workspace graph
WorkspaceGraphPort.fingerprint @"D:\docs" snapshots // "D:\docs|docs=2|<latest>"
Problem
- Document-centric workspaces (docs repos, knowledge bases, config folders) hide their structure:
- which files reference which files is only visible by grepping
- link extraction is re-implemented per tool, mixing IO with parsing so it can't be tested
- So "what breaks if I rename this file" has no cheap answer.
Solution
- Link extraction is one pure function over snapshots: IO at the edge, graph building testable with synthetic content.
- The result plugs into the session
WorkspaceGraphlike any other layer. - Battle-tested as the workspace port of the Guiders session model — FSHARP ADR-0004.
When not to use
- Reading the files — snapshots come pre-loaded from the Execution side; no IO here.
- Code-level references (project references, usings) — that is
Ports.DotNet/Ide.Sessionrelation graphs. - Rich markdown (reference-style links, includes, wikilinks) — the extractor knows inline links and quoted path literals; anything fancier needs your own pass.
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.Ide.Session (>= 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 | 52 | 10/24/2026 |