- `make release` (no args) infers the next version from the last vX.Y.Z tag using conventional-commits: BREAKING/`!:` → major, `feat` → minor, otherwise → patch. LEVEL=major|minor|patch forces; VERSION=vX.Y.Z is the explicit escape hatch. - New `distribute-sdk` subcommand commits + pushes the pin bump in each downstream. Surgical (commits go.mod + go.sum only) so any unrelated WIP in a downstream is left alone instead of getting swept into the commit. Repos without an origin remote land the commit locally. - `release` now chains tag → push → update-sdk → distribute-sdk so one command takes the ecosystem from new commit to fully-distributed.
BlockNinja Plugin SDK
Types, interfaces, and utilities for building BlockNinja plugins.
Package Structure
| Package | Purpose |
|---|---|
plugin/ |
PluginRegistration, ServiceDeps, 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
74.9%
templ
23.4%
Makefile
1.6%