AIGuiders.Platform.Modeling.Gdl.Command 0.1.0

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

AIGuiders.Platform.Modeling.Gdl.Command

Slash command descriptors: domain·object·intent naming, canonical paths with aliases, and arg-tail policies for command catalogs and palettes.

What you get

  • CommandDescriptor — the cross-product command row: DOI triple (Domain/Object/Intent), canonical Path + PathAliases, Help, Group, ArgTail wire, surfaces, scope tags, required capabilities, tier
  • CommandArgTailPolicy — arg-tail semantics after the slash path:
    • parse — wire string → CommandArgTailKind (None / Optional / Required / Picker / ImplicitSelection / ImplicitLineRange); unknown falls back to Optional
    • shouldAutoRunOnCommit — the auto-run gate (exact path? trailing space? arg tail present?)
    • extractSuggestionId / extractCompositeConstructorIds — picker ids out of picker: / suggest: / picker+constructor: tails
  • CatalogRouteEntry — resolved catalog row (path + command id + arg tail + DOI fields); fromDescriptor resolves the path role, resolvePathRole tells canonical from alias case-insensitively
  • CatalogSemanticFields — the DOI triple plus path role; DomainOmittedInPath for elision rendering
  • Picker/constructor menu data — CommandPickerChoice, ArgConstructorBinding, ArgTailProfile (structured arg menus from catalog profiles)
  • CommandDescriptor.allPaths — canonical path plus non-empty aliases

Quick start

open AIGuiders.Platform.Modeling.Gdl.Command

// Arg-tail wire → kind (unknown/empty falls back to Optional)
let kind = CommandArgTailPolicy.parse "picker:files"

// Commit-time auto-run gate: does "go to file " (trailing space) run the command?
let autoRun =
    CommandArgTailPolicy.shouldAutoRunOnCommit
        CommandArgTailKind.Picker   // kind
        false                       // isExactPath
        true                        // endsWithSpace
        false                       // hasArgTail

// Canonical vs alias, case-insensitive
// given descriptor : CommandDescriptor with Path = "/goto/file"
let role = CatalogRouteEntry.resolvePathRole descriptor "/GOTO/File"  // Canonical

Problem

  • Command palettes and chat surfaces each re-invent the command row by hand:
    • what arguments a command takes after its path — none, optional, required, a picker, an implicit selection or line range
    • whether typing the path plus a space should auto-run, or wait
    • which spelling is canonical and which are aliases
  • Those answers end up as per-surface strings and if-chains, so two clients disagree about the same command.

Solution

  • One descriptor row carries the whole contract: DOI naming, canonical path + aliases, arg-tail policy, picker and constructor menus.
  • Arg-tail and auto-run semantics become named, testable functions instead of per-client strings.
  • Battle-tested as the command catalog spine of the Guiders federation — CIDE ADR-0150 · CIDE ADR-0154 · ADR-0047.

When not to use

  • Command file parsing (TOML/JSON profiles) — this is the IR; wire formats are parsed by catalog adapters.
  • Command execution or dispatch — descriptors describe, surfaces execute.
  • Keybinding capture — gesture normalization lives in Notations.Keyboard, bindings in Gdl.Command.Binding.

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

Showing the top 2 NuGet packages that depend on AIGuiders.Platform.Modeling.Gdl.Command:

Package Downloads
AIGuiders.Platform.Modeling.Gdl.Core

GDL spine types — discriminated union project model (Guiders federation).

AIGuiders.Platform.Modeling.Gdl.Parse.Catalog

GDL catalog quarry parser — F# mirror of Platform Authoring.Command.Catalog (phase 1: structure + spine mapping). Parity gaps vs C# authoring emit path: profile bundle resolution (ICatalogBundleLibrary / CatalogProfileResolver), command-profile cross-validation, import-alias bundle path resolution, full notation grammar wire validation (C# injects keyboard parsers), CatalogPhraseSlotIndex codegen inputs.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 133 10/24/2026