AI NuGet: Embedded SDK
AI-first map for standalone apps and plugin hosts using EyeAuras.SDK.Embedded.
Embedded SDK Discovery Map
User Intents
- Replace
EyeAuras.SDKwithEyeAuras.SDK.Embeddedfor a standalone app. - Host EyeAuras services, Blazor windows, input, memory, or CV inside another app/plugin.
- Choose which EyeAuras modules should load in an embedded process.
- Avoid treating embedded host code as a script sandbox.
Concept Model
EyeAuras.SDKis the compile/reference package for code that runs inside EyeAuras.EyeAuras.SDK.Embeddedis the standalone host package. The app owns process startup, creates a bootstrapper, declares capabilities, and waits for readiness.- Runtime implementation modules stay package-owned under
modules/**. Public metadata/shared assemblies provide compile-time APIs and capability extension methods. - Embedded module selection is explicit. This stage does not load modules
on-demand from synchronous APIs such as
LocalProcess.
API Details
EyeAurasEmbeddedBootstrapper- base class for host-owned embedded startup.ConfigureEmbeddedModules(IEyeAurasModuleSetBuilder modules)- declare requested capabilities once in the bootstrapper subclass.EnsureReadyAsync(CancellationToken)- initializes static web assets, requested Prism modules, module payload loading, and application readiness.IEyeAurasModuleSetBuilder- collects requested module names.IEyeAurasModuleSetBuilder.UseModule(string)- adds one requested module name.IEyeAurasModuleSetBuilder.UseModules(params string[])- adds multiple requested module names.IEyeAurasModuleLoadPlan- app-wide selection plan. Normal EyeAuras/EyePad use a load-all plan; embedded hosts use the explicit module names collected byConfigureEmbeddedModules(...).UseUiCore()- core UI/runtime services.UseBehaviorTree()- Behavior Tree runtime/editor capability.UseMemory()- protected Memory module capability.UseOpenCVAuras()- protected OpenCVAuras/CV module capability.UseRoxy()- protected Roxy input automation capability.
Common Flows
Minimal embedded host:
public sealed class AppBootstrapper : EyeAurasEmbeddedBootstrapper
{
public AppBootstrapper(IUnityContainer container) : base(container)
{
}
protected override void ConfigureEmbeddedModules(IEyeAurasModuleSetBuilder modules)
{
modules.UseUiCore();
modules.UseBehaviorTree();
modules.UseMemory();
}
}
var container = new UnityContainer();
var bootstrapper = new AppBootstrapper(container);
bootstrapper.Run(runWithDefaultConfiguration: true);
await bootstrapper.EnsureReadyAsync(cancellationToken);
Assembly / Package Hints
- Package:
EyeAuras.SDK.Embedded - Future granular packages:
EyeAuras.SDK.WebApp,EyeAuras.BehaviorTree,EyeAuras.Memory,EyeAuras.OpenCVAuras,EyeAuras.Roxy - Namespace for embedded module declarations:
EyeAuras.SDK.Embedded - Runtime module compatibility map:
modules.config
Prefer
- Put embedded startup glue in
Program.csand a bootstrapper subclass. - Keep exported/generated script files unchanged when converting to standalone.
- Use
UseX()capability methods instead of direct Prism module class names in consumer code. - Treat readiness failure as startup failure when a requested module cannot be loaded.
Avoid
- Manually scanning static web asset manifests from the consumer app.
- Calling
IDynamicModule.RegisterTypes/OnInitializeddirectly from the consumer app. - Manually resolving
IApplicationAccessor.ReportIsLoaded()from the consumer. - Assuming REPL or scripting services exist unless a requested module registered them.
- Referencing runtime implementation modules directly.
Search Synonyms
- embedded SDK
- standalone SDK
- bootstrapper readiness
- module-name selection
- module load plan
- package capabilities
UseMemoryUseRoxyUseOpenCVAuras
Related Maps
core/app-runtime-contexts.mdcore/app-modules.mdcore/login-and-licensing.mdwindows-subsystems/blazor-windows.mdrecipes/tool-embedded-eyeauras-host.md