docs: add spa-server module + mcp tooling companion
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://go.dev)
|
[](https://go.dev)
|
||||||
[]()
|
[]()
|
||||||
|
|
||||||
> *For those who come after.*
|
> *For those who come after.*
|
||||||
|
|
||||||
@@ -54,6 +54,7 @@ API requires exactly three: **`core` + `web` + one `db-*`**.
|
|||||||
| [`worker`][worker] | v1.0.0 | Concurrent background worker pool | `contracts` |
|
| [`worker`][worker] | v1.0.0 | Concurrent background worker pool | `contracts` |
|
||||||
| [`httpclient`][httpclient] | v1.0.0 | Resilient outbound HTTP client | `contracts` `core` |
|
| [`httpclient`][httpclient] | v1.0.0 | Resilient outbound HTTP client | `contracts` `core` |
|
||||||
| [`smtp`][smtp] | v1.0.0 | SMTP email delivery with no-op fallback | `contracts` `core` |
|
| [`smtp`][smtp] | v1.0.0 | SMTP email delivery with no-op fallback | `contracts` `core` |
|
||||||
|
| [`spa-server`][spa-server] | v1.0.0 | Container-first static server for SPAs / PWAs (Docker base image) | `contracts` `core` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -76,6 +77,7 @@ graph TD
|
|||||||
worker["worker\nv1.0.0"]
|
worker["worker\nv1.0.0"]
|
||||||
httpclient["httpclient\nv1.0.0"]
|
httpclient["httpclient\nv1.0.0"]
|
||||||
smtp["smtp\nv1.0.0"]
|
smtp["smtp\nv1.0.0"]
|
||||||
|
spa_server["spa-server\nv1.0.0"]
|
||||||
|
|
||||||
contracts --> core
|
contracts --> core
|
||||||
contracts --> web
|
contracts --> web
|
||||||
@@ -106,6 +108,8 @@ graph TD
|
|||||||
core --> httpclient
|
core --> httpclient
|
||||||
contracts --> smtp
|
contracts --> smtp
|
||||||
core --> smtp
|
core --> smtp
|
||||||
|
contracts --> spa_server
|
||||||
|
core --> spa_server
|
||||||
|
|
||||||
classDef foundation fill:#b45309,stroke:#78350f,color:#fff
|
classDef foundation fill:#b45309,stroke:#78350f,color:#fff
|
||||||
classDef weblayer fill:#1d4ed8,stroke:#1e3a8a,color:#fff
|
classDef weblayer fill:#1d4ed8,stroke:#1e3a8a,color:#fff
|
||||||
@@ -117,7 +121,7 @@ graph TD
|
|||||||
class web,auth,auth_jwt weblayer
|
class web,auth,auth_jwt weblayer
|
||||||
class auth_firebase deferred
|
class auth_firebase deferred
|
||||||
class db_postgres,db_mysql,db_sqlite,cache_valkey,storage_minio datalayer
|
class db_postgres,db_mysql,db_sqlite,cache_valkey,storage_minio datalayer
|
||||||
class telemetry,worker,httpclient,smtp standalone
|
class telemetry,worker,httpclient,smtp,spa_server standalone
|
||||||
```
|
```
|
||||||
|
|
||||||
**Arrow direction:** dependency flows downward — a module above provides interfaces consumed by the module below it.
|
**Arrow direction:** dependency flows downward — a module above provides interfaces consumed by the module below it.
|
||||||
@@ -127,7 +131,7 @@ graph TD
|
|||||||
| Amber | Foundation — `contracts`, `core` |
|
| Amber | Foundation — `contracts`, `core` |
|
||||||
| Blue | Web layer — `web`, `auth`, `auth-jwt` |
|
| Blue | Web layer — `web`, `auth`, `auth-jwt` |
|
||||||
| Green | Data layer — `db-*`, `cache-*`, `storage-*` |
|
| Green | Data layer — `db-*`, `cache-*`, `storage-*` |
|
||||||
| Purple | Standalone — `telemetry`, `worker`, `httpclient`, `smtp` |
|
| Purple | Standalone — `telemetry`, `worker`, `httpclient`, `smtp`, `spa-server` |
|
||||||
| Grey (dashed) | Deferred — not yet released |
|
| Grey (dashed) | Deferred — not yet released |
|
||||||
|
|
||||||
Data modules (`db-*`, `cache-*`, `storage-*`) never import `web`. Repositories do
|
Data modules (`db-*`, `cache-*`, `storage-*`) never import `web`. Repositories do
|
||||||
@@ -135,6 +139,16 @@ not know HTTP exists. This boundary is absolute.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Tooling
|
||||||
|
|
||||||
|
Companion tooling for developing *on* Einherjar — not framework modules; nothing imports these.
|
||||||
|
|
||||||
|
| Tool | Version | Purpose |
|
||||||
|
|---|---|---|
|
||||||
|
| [`mcp`][mcp] | v1.0.0 | Model Context Protocol server — teaches AI assistants the framework: modules, symbols, ADRs, wiring conventions, and a ready-to-write project scaffold |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## The Law
|
## The Law
|
||||||
|
|
||||||
`contracts` is the constitution of this framework — pure interfaces, zero
|
`contracts` is the constitution of this framework — pure interfaces, zero
|
||||||
@@ -189,3 +203,5 @@ Contributions are accepted under the terms of the [Contributor License Agreement
|
|||||||
[worker]: https://code.nochebuena.dev/einherjar/worker
|
[worker]: https://code.nochebuena.dev/einherjar/worker
|
||||||
[httpclient]: https://code.nochebuena.dev/einherjar/httpclient
|
[httpclient]: https://code.nochebuena.dev/einherjar/httpclient
|
||||||
[smtp]: https://code.nochebuena.dev/einherjar/smtp
|
[smtp]: https://code.nochebuena.dev/einherjar/smtp
|
||||||
|
[spa-server]: https://code.nochebuena.dev/einherjar/spa-server
|
||||||
|
[mcp]: https://code.nochebuena.dev/einherjar/mcp
|
||||||
|
|||||||
Reference in New Issue
Block a user