| AgentFrameworkMetricsOptions |
Configuration options for the agent framework's OpenTelemetry metrics and tracing. |
| AgentRunDiagnosticsBuilder |
Thread-safe accumulator for diagnostics captured during a single agent run. Implements IDiagnosticsSink so writers (middleware, loops) record through a stable interface rather than coupling to the concrete builder. |
| AgentRunDiagnosticsTimelineExtensions |
Extensions for producing ordered timeline views of an IAgentRunDiagnostics. |
| AgentRunDiagnosticsTranscriptExtensions |
Extensions for rendering an IAgentRunDiagnostics as a human-readable markdown transcript. |
| ChatCompletionCollectorHolder |
DI-registered singleton that holds the IChatCompletionCollector instance. The diagnostics middleware sets the real collector during factory construction; consumers resolve this to access it. Unlike a static holder, each DI container has its own instance, making it testable and thread-safe across containers. |
| ChatCompletionDiagnostics |
Diagnostics for a single LLM chat completion call within an agent run. |
| DiagnosticsCharCounter |
Computes character counts of chat messages, responses, tool arguments, and tool results for diagnostics capture. Character counts are a direct programmatic measure of payload size — distinct from the LLM-provider-reported TokenUsage — and are useful for detecting chat-reducer drift, prompt bloat, and unexpectedly large tool responses during evaluation. |
| DiagnosticsFunctionInvocationExtensions |
Extension methods for wiring DiagnosticsFunctionInvokingChatClient into an MEAI chat client pipeline. |
| DiagnosticsFunctionInvokingChatClient |
A Microsoft.Extensions.AI.FunctionInvokingChatClient that records per-tool-call diagnostics, OTel metrics, and Activity spans for every function invocation. This is the MEAI-native equivalent of the MAF DiagnosticsFunctionCallingMiddleware in Workflows. |
| DiagnosticsRecordingChatClient |
Microsoft.Extensions.AI.DelegatingChatClient that routes calls through a NexusLabs.Needlr.AgentFramework.Diagnostics.DiagnosticsChatClientMiddleware and is detectable via GetService. Because this extends Microsoft.Extensions.AI.DelegatingChatClient, MEAI's GetService walks the delegation chain and returns this instance when queried by type — enabling idempotent middleware installation. |
| DiagnosticsTimelineEntry |
A single entry in an agent run's ordered timeline of chat completions and tool calls. |
| PipelineMetricsOptions |
Configuration options for pipeline-shape OpenTelemetry metrics emitted by IPipelineMetrics. Sibling of AgentFrameworkMetricsOptions — that type scopes the per-agent-run meter; this one scopes the pipeline-runner meter. |
| StageTermination |
Describes why a pipeline stage terminated. Framework cases carry structured metadata (e.g. MaxIterationsReached knows the limit and the iterations used); application narrative goes through Custom. |
| StageTermination.BudgetPressure |
The token budget tracker reported usage above the configured budget pressure threshold, and the loop ran one final finalization iteration before terminating. |
| StageTermination.Cancelled |
The loop was cancelled via System.Threading.CancellationToken. |
| StageTermination.Completed |
The stage's IsComplete predicate returned true after an iteration — the stage achieved its goal. |
| StageTermination.CompletedEarlyAfterToolCall |
The IsComplete predicate returned true after a tool call within an iteration. This is a success termination — the stage achieved its goal and the loop exited early to avoid a wasted chat completion call. |
| StageTermination.Custom |
Application-specific termination cause not covered by framework cases. Use this from an onLoopCompleted callback when a stage has app-specific semantics (e.g. "Reconciled — 7 outstanding issues"). |
| StageTermination.Failed |
The stage threw an exception, OR the iterative loop reported an unrecoverable error (in which case the loop's error message is wrapped in an System.InvalidOperationException here). |
| StageTermination.MaxIterationsReached |
The loop exhausted its configured iteration limit without the IsComplete predicate returning true. |
| StageTermination.MaxToolCallsReached |
The cumulative tool-call count across all iterations exceeded the configured MaxTotalToolCalls limit. |
| StageTermination.NaturalCompletion |
The model produced a text response without requesting tool calls, signalling natural completion of the task. |
| StageTermination.Skipped |
The stage was skipped via a ShouldSkip predicate on StageExecutionPolicy. Reason is optional because the current predicate signature does not supply one. |
| StageTermination.StallDetected |
The loop detected that consecutive iterations produced nearly identical token usage, indicating the LLM is repeating the same work without making progress. |
| TeeDiagnosticsSink |
An IDiagnosticsSink that dispatches every record to N inner sinks. Owns its own sequence counters so all sinks see consistent sequence numbers. |
| TokenUsage |
Token usage breakdown for a single LLM call or aggregate across an agent run. |
| ToolCallCollectorHolder |
DI-registered singleton that holds the IToolCallCollector instance. The diagnostics middleware sets the real collector during factory construction; consumers resolve this to access it. Unlike a static holder, each DI container has its own instance, making it testable and thread-safe across containers. |
| ToolCallDiagnostics |
Diagnostics for a single tool/function invocation within an agent run. |
| WorkflowRunOptions |
Options for running a workflow with diagnostics and progress reporting. Consolidates the parameters for RunWithDiagnosticsAsync into a single record to avoid excessive parameter counts. |