Table of Contents

Namespace JD.AI.Core.Agents

Classes

AgentDefinition

Describes a fully configured agent as a serializable, versionable artifact. An agent definition captures everything needed to reproduce an agent's behavior across environments: model selection, tool loadout, system prompt, and workflow chain.

AgentDefinitionRegistry

Thread-safe in-memory IAgentDefinitionRegistry.

AgentEnvironments

Describes which environment scope an agent definition belongs to. Environments form a promotion pipeline: Dev → Staging → Production.

AgentLoop

The core agent interaction loop: read input → LLM → tools → render.

AgentModelSpec

Model selection within an AgentDefinition.

AgentOutput

Global accessor for the agent output renderer. The TUI (or host) sets Current at startup; Core code calls it without a direct Spectre.Console dependency.

AgentSession

Manages the conversation state, kernel, compaction, and persistence.

AgentVersions

Validates and parses the numeric version formats supported by the file-backed agent registry.

ConversationTransformer

Transforms conversation history when switching between AI models.

FileAgentDefinitionLoader

Loads AgentDefinition instances from *.agent.yaml files in one or more search directories and registers them into an IAgentDefinitionRegistry.

FileAgentDefinitionRegistry

File-backed IVersionedAgentDefinitionRegistry that stores AgentDefinition instances as *.agent.yaml files inside environment-scoped sub-directories of a root path.

ForkPoint
InstructionFile

A single discovered instruction file.

InstructionsLoader

Discovers and merges project instruction files (JDAI.md, CLAUDE.md, AGENTS.md, etc.) from the working directory up to the git root, and injects them into the system prompt.

InstructionsResult

The combined result of instruction file discovery.

ModelSwitchRecord
NullAgentOutput

No-op implementation used when no TUI is wired up.

OutputSchemaValidator

Validates agent output against a user-provided JSON schema. Used with the --json-schema CLI flag.

StreamingContentParser

Parses streaming LLM output to detect and separate thinking content from response content. Handles <think>...</think> tags that may span chunk boundaries (used by Qwen, DeepSeek, and similar models).

SubagentRunner

Manages subagent lifecycle: creates isolated Kernel instances with scoped tools, runs a single turn, and returns the result string.

ToolConfirmationFilter

SK auto-function-invocation filter that enforces safety tiers, policy-based governance, and renders tool calls to the TUI via IAgentOutput.

ToolExecutionPermissionEvaluator

Shared permission gate for tool execution across structured SK tool calls and text-emitted tool-call fallback execution.

ToolPermissionProfile

In-memory explicit tool permission profile resolved from user/project config. Rules support exact names and glob patterns (*, ?).

TurnMetrics

Metrics collected during a single agent turn.

WorkflowRequestedException

Thrown by IAutoFunctionInvocationFilter implementations when a tool call should be intercepted and routed through workflow planning instead of executing ad-hoc. The AgentLoop catches this to enter workflow generation mode.

Structs

StreamSegment

A classified segment of streaming output.

ToolExecutionGateResult

Interfaces

IAgentDefinitionRegistry

Registry for AgentDefinition instances loaded from YAML files or registered programmatically.

IAgentOutput

Abstraction for agent output rendering — allows Core agent logic to emit UI messages without depending on Spectre.Console or any specific TUI framework.

IVersionedAgentDefinitionRegistry

Versioned registry for AgentDefinition instances supporting environment-scoped storage, semantic-version resolution, and environment promotion.

Enums

PermissionMode

Controls the permission model for tool invocations within a session.

ReasoningEffort

Provider-agnostic reasoning effort hint for compatible reasoning models.

StreamSegmentKind

Classifies a segment of streaming output.

SubagentType

Type of subagent with scoped tool access and model preference.

SwitchMode

Defines how conversation history is handled during a model switch.

ToolExecutionGateDecision