The wasm-plugin ABI contract now lives in the cms (block/cms/abi/v1 + docs) and the ninja CLI moved to its own repo (block/cli). Core keeps abi/ as the guest SDK until WO-WZ-027. Removes cmd/ninja, the dead orchestrator registry client (internal/api/orchestrator), the moved docs, and the now-unused ninja/orchclient deps from go.mod/go.sum. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# BlockNinja Core
|
|
|
|
Shared Go code between the BlockNinja CMS and the orchestrator: types, interfaces, and utilities both need.
|
|
|
|
> **Not a plugin SDK.** Core is purely for sharing code between the CMS and the orchestrator. Plugins must **not** import `block/core` — in the wasm-plugin era they are standalone artifacts built against the wasm ABI. (Core previously served as the plugin SDK; that role is gone.)
|
|
|
|
## Package Structure
|
|
|
|
| Package | Purpose |
|
|
|---------|---------|
|
|
| `plugin/` | PluginRegistration, CoreServices, RegisterFunc |
|
|
| `blocks/` | BlockMeta, BlockFunc, BlockRegistry interface, BlockContext |
|
|
| `blocks/builtin/` | Reusable block implementations (HTMLBlock) |
|
|
| `templates/` | TemplateRegistry interface |
|
|
| `templates/bn/` | Shared templ components (head, engagement, toolbar) |
|
|
| `auth/` | Claims types, context extractors |
|
|
| `content/` | Content access interface |
|
|
| `settings/` | Settings access interface |
|
|
| `gating/` | Access gating evaluation |
|
|
| `crypto/` | Encrypt/Decrypt interface |
|
|
| `render/` | Rich text rendering utilities |
|
|
| `video/` | Video embed URL parsing |
|
|
| `ai/` | AI tool registry interface and types |
|
|
| `rbac/` | Role type definition |
|
|
|
|
## Usage
|
|
|
|
Consumers are the CMS and the orchestrator only.
|
|
|
|
```go
|
|
import "git.dev.alexdunmow.com/block/core/plugin"
|
|
```
|