# Architecture

YMhut Box is split into a WinUI app and a reusable Core library.

## Layers

- `YMhut.Box.WinUI`: window shell, navigation, pages, App Installer update trigger and Windows integration.
- `YMhut.Box.Core`: settings, log, HTTP/API, local data, system snapshots, tool catalog and tool execution.
- `YMhut.Box.Tests`: MSTest coverage for migration-critical services and tool behavior.

## Services

The WinUI app builds a DI container in `AppServices.Configure()` and registers settings, logging, HTTP/API, update, data, system metrics, startup, window state and tool worker services.

Tool pages call `IToolWorkerService` and `ToolExecutor`; API-backed tools go through `IApiManager`, which owns endpoint resolution, timeout behavior, logging and cache boundaries.

## Tool Contract

Every tool is registered as an `IToolModule` with stable metadata. `ToolCatalog` is a static C# registry and no longer reads a runtime tool registry from another project.
