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.yamlfiles in one or more search directories and registers them into an IAgentDefinitionRegistry.
- FileAgentDefinitionRegistry
File-backed IVersionedAgentDefinitionRegistry that stores AgentDefinition instances as
*.agent.yamlfiles inside environment-scoped sub-directories of a root path.
- 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.
- 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-schemaCLI 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.
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.