Nao.Loader Namespace
| Type/Module | Description |
|
Parsed agent definition loaded from JSON configuration. References tools and sub-agents by name; resolved at build time. |
|
|
|
|
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) |
|
|
Parsed constitution definition (collection of rules) |
|
|
Parsed constitution rule definition loaded from JSON |
|
|
Builds runnable domain objects from parsed definitions |
|
|
Parsed eval suite definition grouping test cases with an evaluator |
|
|
Reference to an evaluator used in an eval suite |
|
|
A source that can provide agent/tool/eval definitions |
|
|
Extension point for custom tool execution strategies (gRPC, MCP, etc.) |
|
|
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. |
|
|
|
|
Loads definitions from a directory of JSON files. Expected folder structure: |
|
|
The result of loading definitions from a source |
|
|
Functions for formatting load errors |
|
|
Errors that can occur during definition loading |
|
|
Result type for load operations |
|
|
Parsing of the session runtime-mode string into a RuntimePolicy. |
|
|
Session-level policy deciding how tool processes are launched, overlaying the runtime each tool declares for itself. |
|
|
Accessors over a tool definition's kind. |
|
|
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`. |
|
|
How a tool executes (the mechanism for running the tool) |
|
|
The two kinds of tool a definition can describe. |
|
|
Built-in runtimes plus resolution of runtime names to launcher commands. |
|
|
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 |
|
|
Combined result of loading from all sources |
|
|
Loads definitions from multiple sources and merges results |
Nao