ADR-0030: AEP is an autonomous SDK and Inspector repository
Status
Accepted — 2026-08-11
Context
AEP began as projects inside Agentstration. Although its core assemblies had neutral dependencies, repository placement, tests, versioning, and discovery vocabulary still presented it as an internal API. Extension developers need to build and validate an extension without cloning or running Agentstration, and an Inspector must infer all behavior from the protocol rather than product or provider knowledge.
Decision
- The complete AEP workspace is staged under the self-contained
aep/directory for extraction into a dedicated repository. - AEP owns its contracts, canonical client, ASP.NET Core server SDK, validation library, optional Microsoft.Extensions.AI integration, CLI, generic samples, conformance tests, and standalone Blazor Inspector.
- Dependency direction is strictly Agentstration to AEP. AEP projects do not reference Management, Runtime, Infrastructure, Web, Workplace, or official extensions.
- Protocol version
2026-08-01usesGET /.well-known/aepand an extensible map of independently versioned capabilities. The former discovery route remains a temporary compatibility alias. Agentstration.Aep.Clientis the sole protocol client used by validation and Inspector. Its optional HTTP tracing redacts sensitive headers and JSON fields.- The transition build uses local project references by default. Setting
UseLocalAepProjects=falseswitches Agentstration consumers to centrally versioned AEP packages after those packages are published. - Official Ollama and Utilities extensions remain in Agentstration for now and consume AEP; they are not part of the future AEP repository.
Consequences
The aep/ subtree can be moved with its own solution, SDK selection, central packages, licence, documentation, tests, sample, CLI, and Inspector. Protocol, SDK, extension, and Agentstration versions can evolve independently. A future capability can be added without changing a fixed global supports-flags DTO. The compatibility alias and local project-reference mode are transitional and may be removed only after consumers have migrated to published packages.
This decision supersedes ADR-0026 where it treats AEP version 1.0 and /.well-known/agentstration as the permanent protocol identity; its out-of-process extension and provider-neutral dependency decisions remain accepted.