Nabs.Launchpad.Core.Ai.Harness.Abstractions 10.0.249

Prefix Reserved
dotnet add package Nabs.Launchpad.Core.Ai.Harness.Abstractions --version 10.0.249
                    
NuGet\Install-Package Nabs.Launchpad.Core.Ai.Harness.Abstractions -Version 10.0.249
                    
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="Nabs.Launchpad.Core.Ai.Harness.Abstractions" Version="10.0.249" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nabs.Launchpad.Core.Ai.Harness.Abstractions" Version="10.0.249" />
                    
Directory.Packages.props
<PackageReference Include="Nabs.Launchpad.Core.Ai.Harness.Abstractions" />
                    
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 Nabs.Launchpad.Core.Ai.Harness.Abstractions --version 10.0.249
                    
#r "nuget: Nabs.Launchpad.Core.Ai.Harness.Abstractions, 10.0.249"
                    
#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 Nabs.Launchpad.Core.Ai.Harness.Abstractions@10.0.249
                    
#: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=Nabs.Launchpad.Core.Ai.Harness.Abstractions&version=10.0.249
                    
Install as a Cake Addin
#tool nuget:?package=Nabs.Launchpad.Core.Ai.Harness.Abstractions&version=10.0.249
                    
Install as a Cake Tool

NuGet

Nabs.Launchpad.Core.Ai.Harness.Abstractions

Nabs.Launchpad.Core.Ai.Harness.Abstractions provides reusable console harness primitives for AI agents, including reactive terminal UI, command handling, observer pipelines, follow-up flows, and tracing helpers.

All the code in the assembly was copied from: https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/02-agents/Harness

I may add additional features or alter this code over time.

Installation

dotnet add package Nabs.Launchpad.Core.Ai.Harness.Abstractions

The Problem

// 1) Every agent console app re-implements input loops, rendering, and shutdown behavior
while (true)
{
	var text = Console.ReadLine();
	if (text == "/exit") break;
	// duplicated orchestration logic
}

// 2) Streaming, errors, and tool output are mixed together in ad-hoc formatting code
await foreach (var update in agent.RunStreamingAsync(messages, session, options))
{
	Console.Write(update.Text); // no observer separation, hard to evolve
}

// 3) Follow-up questions require brittle state management
// pendingQuestions, responses, mode transitions all tracked manually.

// 4) No consistent command model (/exit, /todo, /mode, /session)
// each app parses commands differently and drifts over time.

Features

  • Shared harness entry point via HarnessConsole.RunAgentAsync.
  • Reactive console UI using HarnessAppComponent and UX state drivers.
  • Composable observer pipeline for text, reasoning, tool calls, usage, and errors.
  • Built-in command handlers for exit, todo, mode, and session workflows.
  • Follow-up question orchestration with queueing and continuation support.
  • OpenTelemetry tracing helper with file export through HarnessTracing.CreateFileTracerProvider.

Usage

using Microsoft.Agents.AI;
using Nabs.Launchpad.Core.Ai.Harness.Abstractions.SharedConsole;

AIAgent agent = BuildAgent();

await HarnessConsole.RunAgentAsync(
	agent,
	userPrompt: "Ask the agent anything",
	options: new HarnessConsoleOptions
	{
		Observers = HarnessConsoleOptions.BuildDefaultObservers(),
		CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent)
	});
using Microsoft.Agents.AI;
using Nabs.Launchpad.Core.Ai.Harness.Abstractions.SharedConsole;

AIAgent agent = BuildPlanningAgent();

var options = new HarnessConsoleOptions
{
	Observers = HarnessConsoleOptions.BuildObserversWithPlanning(
		agent,
		planModeName: "plan",
		executionModeName: "execute"),
	CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent)
};

await HarnessConsole.RunAgentAsync(agent, "Plan and execute tasks", options);

Configuration

  • Use HarnessConsoleOptions.Observers to provide custom observer sets or disable observers with an empty list.
  • Use HarnessConsoleOptions.CommandHandlers to customize command behavior before user input reaches the agent.
  • Configure mode colors through HarnessConsoleOptions.ModeColors.
  • Override session creation with HarnessConsoleOptions.SessionFactory when you need custom session lifecycle behavior.

Project Structure

  • SharedConsole/HarnessConsole - high-level entry point that wires UI component and runner.
  • SharedConsole/HarnessConsoleOptions - observer, command, mode color, and session configuration.
  • SharedConsole/HarnessAgentRunner - orchestrates agent turns, streaming updates, commands, and follow-up flows.
  • SharedConsole/HarnessAppComponent - reactive terminal component with input, list selection, and streaming panels.
  • SharedConsole/Observers/* - pluggable observers for text, reasoning, usage, errors, tool calls, and planning output.
  • SharedConsole/Commands/* - built-in slash-command handlers.
  • SharedConsole/HarnessTracing - OpenTelemetry tracing provider setup with file span export.

License

Copyright (c) Net Advantage Business Solutions.

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

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
10.0.249 59 6/6/2026
10.0.248 50 6/6/2026
10.0.247 56 6/6/2026
10.0.246 55 6/6/2026
10.0.242 57 6/4/2026
10.0.241 53 6/4/2026
10.0.240 58 6/4/2026
10.0.239 56 6/3/2026
10.0.234 58 5/31/2026
10.0.233 56 5/31/2026
10.0.232 99 5/30/2026
10.0.230 97 5/30/2026
10.0.229 90 5/30/2026