Alex Dunmow
680cbe0160
chore(core): add klauspost/compress for plugin archive zstd
2026-06-03 01:19:51 +08:00
Alex Dunmow
32c6528162
feat(templates): add HTMLComponent interface and first-class pongo2 engine
...
Decouple TemplateFunc from templ.Component by introducing a generic
HTMLComponent interface that both templ and pongo2 satisfy via Go
structural typing. Add a complete pongo2 rendering engine in
templates/pongo/ with page templates, block templates (with BlockContext
injection and icon processing), template overrides, and email wrappers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-02 23:07:11 +08:00
Alex Dunmow
7f4bce79c9
feat(cli): ninja CLI with login, plugin init/publish/status
...
Cobra scaffold, credentials store, Connect client, device-flow login,
whoami/logout, plugin init (creates + adds git remote), publish (tag + push
+ registry RPC), and status (list scopes/plugins). Proto copied from
orchestrator with buf codegen for client stubs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-01 23:55:01 +08:00
Alex Dunmow
7ff326ef25
feat(sdk): ModFile struct, ParseModFull, and tests
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-01 22:45:26 +08:00
Alex Dunmow
a5caf2d9e7
chore(sdk): add deps for plugin.mod parser and ninja CLI
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-01 22:44:55 +08:00
Alex Dunmow
13d741979a
fix: rename module path from ninja/core to block/core
...
Matches the actual Gitea repo location at block/core.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 09:39:10 +08:00
Alex Dunmow
1be5172358
chore: go mod tidy before v0.1.0 tag
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 09:18:19 +08:00
Alex Dunmow
71d3416304
feat: WO-PS-010 SDK HTMLBlock with MediaResolver interface
...
HTMLBlock uses MediaResolver interface instead of db.Queries for
media metadata enrichment. Includes shared ButtonConfig, MediaValue,
TemplateRenderer interface, and block helper utilities.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 09:17:50 +08:00
Alex Dunmow
7c20538a4e
feat: WO-PS-009 SDK plugin types
...
- plugin/types.go: Pool, EmailSender, JobHandlerFunc, Dependency,
AdminPage, AIAction, MasterPageDefinition, status/source constants,
MediaAnalyzedEvent, ModerationDecisionEvent, MediaHooksProvider,
DirectoryExtensions
- plugin/deps.go: ServiceDeps with typed capability interfaces
(Content, Settings, Gating, Crypto, ToolRegistry, JobRunner,
EmbeddingService, RAGService)
- plugin/registration.go: PluginRegistration, RegisterFunc
- plugin/service.go: ConnectServiceBinding with generics, ServiceMount,
ServiceRegistration
- plugin/provisioner.go: Provisioner interface with all config types
- plugin/css_manifest.go: CSSManifest, MergedCSSManifest, MergeCSSManifests
- plugin/version.go: ParseModVersion, CompareVersions
- plugin/topo_sort.go: TopologicalSort (Kahn's algorithm)
- plugin/block_registry.go: PluginBlockRegistry (auto-prefixing wrapper)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 22:41:52 +08:00
Alex Dunmow
99fc63ddfd
feat: WO-PS-002–008 SDK type packages
...
- rbac/: Role type, constants, HasPermission, RoleFromString
- blocks/: BlockFunc, BlockMeta, BlockContext, context accessors, BlockRegistry interface
- templates/: TemplateFunc, meta types, TemplateRegistry interface
- auth/: Claims, PublicClaims, context extractors
- content/: Content interface, AuthorProfile/PageInfo/PostInfo types
- settings/: Settings interface, map accessor helpers
- gating/: AccessRule, AccessResult, EvaluateAccess, Gating interface
- crypto/: Crypto interface (Encrypt/Decrypt)
- render/: BlockNoteToHTML standalone renderer
- video/: ParseEmbedURL, EmbedIframeURL
- ai/: ToolDefinition, ToolResult, ToolRegistry interface
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 22:32:29 +08:00
Alex Dunmow
0991b791b1
feat: WO-PS-001 initialize SDK repo
...
Initialize git.dev.alexdunmow.com/ninja/core with Go 1.26 module,
package directory structure, and README.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 22:25:52 +08:00