Header menu logo Nao

Nao.Loader Namespace

Type/Module Description

AgentDef

Parsed agent definition loaded from JSON configuration. References tools and sub-agents by name; resolved at build time.

AssemblySource (Module)

AssemblySource (Type)

 Loads agents, tools, and evaluators from a .NET assembly via reflection.
 Discovers:
   - Types implementing IAgent (instantiated via parameterless constructor)
   - Static properties/fields of type Tool
   - Types implementing IEvaluator (instantiated via parameterless constructor)

ConstitutionDef

Parsed constitution definition (collection of rules)

ConstitutionRuleDef

Parsed constitution rule definition loaded from JSON

DefinitionBuilder

Builds runnable domain objects from parsed definitions

EvalSuiteDef

Parsed eval suite definition grouping test cases with an evaluator

EvaluatorRef

Reference to an evaluator used in an eval suite

IDefinitionSource

A source that can provide agent/tool/eval definitions

IToolExecutor

Extension point for custom tool execution strategies (gRPC, MCP, etc.)

JsonRead

Strict, schema-driven loading of definition JSON. Each definition is deserialized directly into a well-typed object via System.Text.Json with full F# support (records, options, unions, lists, maps). The schema is described once by the `*Wire` records below; anything that does not match it — a wrong type, an unknown union tag, an unknown property, or a missing required field — throws instead of being silently defaulted. There are no aliases and no value fallbacks: omission is the ONLY leniency, and only for fields modelled as `option`, which then resolve to their type's natural empty value.

JsonSource (Module)

JsonSource (Type)

 Loads definitions from a directory of JSON files.

 Expected folder structure:
   /
   ├── agents/
   │   ├── my-agent.json
   │   └── research-agent.json
   ├── tools/
   │   ├── web-search.json
   │   └── calculator.json
   └── evals/
       ├── qa-suite.json
       └── coding-suite.json

LoadedDefinitions

The result of loading definitions from a source

LoadError (Module)

Functions for formatting load errors

LoadError (Type)

Errors that can occur during definition loading

LoadResult<'T>

Result type for load operations

RuntimePolicy (Module)

Parsing of the session runtime-mode string into a RuntimePolicy.

RuntimePolicy (Type)

Session-level policy deciding how tool processes are launched, overlaying the runtime each tool declares for itself.

ToolDef (Module)

Accessors over a tool definition's kind.

ToolDef (Type)

Parsed tool definition loaded from JSON configuration. A tool is either prompt-defined (LLM-backed, sync) or executable (process/HTTP/custom, sync or async) — see `ToolKind`.

ToolExecutionDef

How a tool executes (the mechanism for running the tool)

ToolKind

The two kinds of tool a definition can describe.

ToolRuntime (Module)

Built-in runtimes plus resolution of runtime names to launcher commands.

ToolRuntime (Type)

Describes a named runtime that a process-based tool needs in order to run. For example, a TypeScript entrypoint declares runtime "deno" so it launches as `deno run -A entry.ts ` instead of being executed directly.

WorkspaceDefinitions

Combined result of loading from all sources

WorkspaceLoader

Loads definitions from multiple sources and merges results

Type something to start searching.