AIGuiders.Platform.Modeling.Notations.Command 0.1.0

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

AIGuiders.Platform.Modeling.Notations.Command

The command-line notation family: slash parsing, canonical command paths, typed invocation surfaces, and a four-stage pipeline from raw text to one resolved invocation.

What you get

  • SlashCommandNotation — slash-line notation: tryParseLine (leading / required) and parseBody producing SlashWireBody (path Tokens + EndsWithSpaceAfterTokens continuation hint, JoinedTokens)
  • InvocationNotation — canonical command path: fromPathSegments (blank segments dropped, single-space join) and case-insensitive pathsEqual, over the NormalizedCommandLine record
  • InvocationSurfaceId — the typed surface vocabulary with toWire/tryParse:
    • SlashBar (slash.bar), SlashComposer, ConsoleFilter, Palette, EditorCcl (editor-ccl), EditorInline, CommandBar, BindingHotkey, MelodyChord, McpTool, CitizenIntent, Custom
  • InvocationSurfaceSpec — per-surface contract: Engage + Wire kind + RequiresSurfaceProjection + Description; builtin/allBuiltins for the eleven built-ins
  • InvocationEngageKind — how invocation started: Slash, Melody, Binding
  • InvocationWireKind — which parser branch owns the wire: SlashPath, ConsolePath, KeySequence, None
  • InvocationStage — the projection pipeline Raw → SurfaceProjected → WireParsed → Resolved, with advance* helpers; CanonicalInvocation (CommandId + Path + Args) as the resolved end state
  • InvocationLinePhase — where the user is on the line: Path, Arg, Ready; ArgMechanic — arg-tail interaction: Picker, FreeText, Optional, Constructor, TypedInput
  • SurfaceRegistry — GDL catalog strings to typed specs: tryParseId, tryParseList, specFor, validateGdlSurfaces, plus the federation default surface set
  • AttachInvocation — the attach command contract: root federation.attach, verbs (error, issue, document, code, nav, manual), tryParsePath

Quick start

open AIGuiders.Platform.Modeling.Notations.Command
open AIGuiders.Platform.Modeling.Notations.Command.Slash

// 1) Tokenize what the user typed on a slash surface
let body = SlashCommandNotation.tryParseLine "/buffer open doc=README.md"
// Some { Tokens = ["buffer"; "open"; "doc=README.md"]; EndsWithSpaceAfterTokens = false }

// 2) Normalize the command path (blank segments dropped, single-space join)
let path = InvocationNotation.fromPathSegments body.Value.Tokens

// 3) One command, many surfaces: get the typed surface contract
let spec = SurfaceRegistry.specFor InvocationSurfaceId.SlashBar
// Ok { Engage = Slash; Wire = SlashPath; RequiresSurfaceProjection = false; … }

Problem

  • The same command is invokable from many front-ends — slash bar, palette, console filter, editor line, hotkey, MCP tool — and each one hand-rolls its own line parsing, its own path canonicalization (case, blank segments), and its own list of surfaces as untyped strings.
  • Completion UIs also need to know where the user is — still typing the command path, mid-argument, or ready to run — and every surface answers that differently.

Solution

  • One typed pipeline (Raw → SurfaceProjected → WireParsed → Resolved) ending in a CanonicalInvocation, plus a registry of surface specs so "which surfaces can run this command" is data, not prose.
  • The command branch of the Guiders Notations family, running the federation's slash bars, palettes, and command catalogs — ADR-0021 (§13.1 stages), surfaces per ADR-0009, engage kinds per ADR-0015, line phases per ADR-0043.

When not to use

  • No catalog resolution or execution here: the pipeline ships pure stage labels and advance helpers; matching a path against a command catalog (longest-prefix) and running anything live in the command-plane side.
  • No argument-tail parsing: Args travels as NormalizedArguments from the sibling Argument package — kv/cli/positional readers are not in this package.
  • Not a keybinding parser: BindingHotkey/MelodyChord surfaces carry key-sequence wire, but keyboard normalization itself lives in Notations.Keyboard.

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

Showing the top 1 NuGet packages that depend on AIGuiders.Platform.Modeling.Notations.Command:

Package Downloads
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 97 10/24/2026