PluginManifest gains `codeless` (additive, buf-breaking clean): an artifact with NO plugin.wasm that the host runs entirely. `ninja plugin build` classifies by repo shape — no Go source → codeless (manifest synthesized from plugin.mod + optional manifest.yaml: theme presets, fonts, settings schema, master pages, CSS, icon packs, deps); Go source → wasm as always. New `--codeless` flag asserts the expectation. Both artifact kinds now pack the declarative dirs: blocks/ (the cms blocks.yaml manifest-FS layout — definition-backed blocks), templates/, and seed/ (seed.json: settings/media/pages/menu items, applied host-side via the WO-WZ-019 provisioner). The packer structurally validates blocks.yaml and seed.json (schema JSON validity, file presence, traversal safety); full semantic validation stays host-side at install. `ninja plugin verify`: plugin.wasm is required exactly when NOT codeless; a codeless manifest declaring any computing hook (http/jobs/load/unload/media/ RAG/tags/filters/services/guest blocks/data_dir) is rejected — CodelessHookViolation mirrors the cms reader check (lockstep duplication). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
BlockNinja Plugin SDK
Types, interfaces, and utilities for building BlockNinja plugins.
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
import "git.dev.alexdunmow.com/ninja/core/plugin"
Description
Languages
Go
83.5%
templ
15.5%
Makefile
1%