core/README.md
Alex Dunmow c7cbf69f63 refactor(abi): shed ABI contract + ninja CLI (WO-WZ-023)
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>
2026-07-04 22:37:24 +08:00

1.3 KiB

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.

import "git.dev.alexdunmow.com/block/core/plugin"