core/abi/v1/manifest.pb.go
Alex Dunmow 704b046727 feat(abi): wasm plugin ABI protobuf schema v1 (WO-WZ-001)
Defines the host<->guest wire contract for the .so -> wazero migration as a
repo-local buf module (abi/proto/v1, generated Go in abi/v1):

- manifest.proto: PluginManifest mirroring every static field of
  plugin.PluginRegistration (abi_version, deps, block/template registrations,
  admin pages, settings schema, theme presets, fonts, master pages, AI
  actions, RBAC method roles, CSS manifest, icon packs, directory
  extensions, job types, RAG fetcher types, settings panel, hook flags,
  core service bindings)
- invoke.proto: bn_invoke envelope, Hook catalog (RENDER_BLOCK,
  RENDER_TEMPLATE, HANDLE_HTTP, JOB, LOAD, UNLOAD, RAG_FETCH, MEDIA_HOOK,
  DESCRIBE), AbiError, and job/lifecycle/rag/media/describe payloads
- render.proto: RenderBlock/RenderTemplate payloads + RenderContext
  enumerating every ctx value from blocks/context.go (incl. BlockContext 1:1)
- http.proto: buffered HttpRequest/HttpResponse for HANDLE_HTTP
- db.proto: guest sql-driver messages (DbValue oneof over pgx-mappable
  types, query/exec/tx with host-side tx handles, SQLSTATE-carrying DbError)
- capability.proto: HostCall envelope + one request/response pair per
  CoreServices interface method (content, settings+update, gating, crypto,
  menus, datasources, users, subscriptions, media.deposit, email.send,
  ai.text_call, ai.tools.register, bridge, jobs.submit, embeddings, rag,
  reviews, badges.refresh)

The abi/ buf module is deliberately separate from the repo-root config:
proto/ is the shared block/proto submodule (service API contracts); the ABI
is SDK-internal and versions in lockstep with the guest shim. New `make abi`
target runs buf lint + generate. docs/wasm-abi.md documents the ptr+len
calling convention (bn_alloc, bn_invoke, packed u64), hook catalog, error
semantics, abi_version evolution rules, and the full registration/
CoreServices coverage tables.

Verified: `cd abi && buf lint` exit 0; `go build ./...` exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 12:47:00 +08:00

1451 lines
47 KiB
Go

// manifest.proto — the static plugin manifest (WO-WZ-001).
//
// PluginManifest is the wire form of everything that is *static data* in
// core/plugin/registration.go (PluginRegistration). It is produced once at
// publish time by calling the guest's DESCRIBE hook and stored as manifest.pb
// inside the .bnp artifact; the CMS loader reads it without instantiating the
// wasm module.
//
// Function-valued registration fields cannot cross the wire; they map to
// either a hook (Load/Unload/JobHandlers/MediaHooks/HTTPHandler), a boolean
// presence flag here, or an artifact directory (Assets → assets/,
// Schemas → schemas/, Migrations → migrations/). See core/docs/wasm-abi.md
// for the full field-by-field mapping.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc (unknown)
// source: v1/manifest.proto
package abiv1
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// PluginManifest mirrors the static surface of plugin.PluginRegistration.
type PluginManifest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// ABI major version the plugin was built against. The host rejects
// manifests whose major version it does not support.
AbiVersion uint32 `protobuf:"varint,1,opt,name=abi_version,json=abiVersion,proto3" json:"abi_version,omitempty"`
// PluginRegistration.Name / .Version.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
// PluginRegistration.Dependencies.
Dependencies []*Dependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
// Blocks registered via BlockRegistry.Register (captured by DESCRIBE).
Blocks []*BlockMeta `protobuf:"bytes,5,rep,name=blocks,proto3" json:"blocks,omitempty"`
// Blocks registered via BlockRegistry.RegisterTemplateOverride[WithSource].
BlockTemplateOverrides []*BlockTemplateOverride `protobuf:"bytes,6,rep,name=block_template_overrides,json=blockTemplateOverrides,proto3" json:"block_template_overrides,omitempty"`
// Templates registered via TemplateRegistry (captured by DESCRIBE).
TemplateKeys []string `protobuf:"bytes,7,rep,name=template_keys,json=templateKeys,proto3" json:"template_keys,omitempty"` // TemplateRegistry.Register
SystemTemplates []*SystemTemplateMeta `protobuf:"bytes,8,rep,name=system_templates,json=systemTemplates,proto3" json:"system_templates,omitempty"` // RegisterSystemTemplate
PageTemplates []*PageTemplateMeta `protobuf:"bytes,9,rep,name=page_templates,json=pageTemplates,proto3" json:"page_templates,omitempty"` // RegisterPageTemplate
EmailWrapperSystemKeys []string `protobuf:"bytes,10,rep,name=email_wrapper_system_keys,json=emailWrapperSystemKeys,proto3" json:"email_wrapper_system_keys,omitempty"` // RegisterEmailWrapper
// PluginRegistration.AdminPages.
AdminPages []*AdminPage `protobuf:"bytes,11,rep,name=admin_pages,json=adminPages,proto3" json:"admin_pages,omitempty"`
// PluginRegistration.SettingsSchema / .ThemePresets / .BundledFonts (JSON).
SettingsSchema []byte `protobuf:"bytes,12,opt,name=settings_schema,json=settingsSchema,proto3" json:"settings_schema,omitempty"`
ThemePresets []byte `protobuf:"bytes,13,opt,name=theme_presets,json=themePresets,proto3" json:"theme_presets,omitempty"`
BundledFonts []byte `protobuf:"bytes,14,opt,name=bundled_fonts,json=bundledFonts,proto3" json:"bundled_fonts,omitempty"`
// PluginRegistration.MasterPages.
MasterPages []*MasterPageDefinition `protobuf:"bytes,15,rep,name=master_pages,json=masterPages,proto3" json:"master_pages,omitempty"`
// PluginRegistration.AIActions.
AiActions []*AiAction `protobuf:"bytes,16,rep,name=ai_actions,json=aiActions,proto3" json:"ai_actions,omitempty"`
// RBAC roles for the plugin's own Connect services, merged from
// ServiceRegistration (full method name → role, e.g.
// "/symposium.v1.ForumService/CreateThread" → "admin").
RbacMethodRoles map[string]string `protobuf:"bytes,17,rep,name=rbac_method_roles,json=rbacMethodRoles,proto3" json:"rbac_method_roles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// PluginRegistration.CSSManifest.
CssManifest *CssManifest `protobuf:"bytes,18,opt,name=css_manifest,json=cssManifest,proto3" json:"css_manifest,omitempty"`
// PluginRegistration.RequiredIconPacks.
RequiredIconPacks []string `protobuf:"bytes,19,rep,name=required_icon_packs,json=requiredIconPacks,proto3" json:"required_icon_packs,omitempty"`
// PluginRegistration.DirectoryExtensions (static fields only; the
// panel-section / pin-decorator callbacks are counted so the host knows
// how many guest callbacks exist).
DirectoryExtensions *DirectoryExtensions `protobuf:"bytes,20,opt,name=directory_extensions,json=directoryExtensions,proto3" json:"directory_extensions,omitempty"`
// Job types the plugin handles (keys of PluginRegistration.JobHandlers).
// The host dispatches these via the JOB hook.
JobTypes []string `protobuf:"bytes,21,rep,name=job_types,json=jobTypes,proto3" json:"job_types,omitempty"`
// Content types the plugin registered RAG content fetchers for
// (RAGService.RegisterContentFetcher inverts to a manifest declaration;
// the host calls back via the RAG_FETCH hook).
RagContentFetcherTypes []string `protobuf:"bytes,22,rep,name=rag_content_fetcher_types,json=ragContentFetcherTypes,proto3" json:"rag_content_fetcher_types,omitempty"`
// PluginRegistration.SettingsPanel — Module Federation path of the
// settings panel component ("" when the plugin has none).
SettingsPanel string `protobuf:"bytes,23,opt,name=settings_panel,json=settingsPanel,proto3" json:"settings_panel,omitempty"`
// Presence flags for function-valued registration fields that invert to
// hooks at runtime.
HasHttpHandler bool `protobuf:"varint,24,opt,name=has_http_handler,json=hasHttpHandler,proto3" json:"has_http_handler,omitempty"` // PluginRegistration.HTTPHandler → HANDLE_HTTP
HasLoadHook bool `protobuf:"varint,25,opt,name=has_load_hook,json=hasLoadHook,proto3" json:"has_load_hook,omitempty"` // PluginRegistration.Load → LOAD
HasUnloadHook bool `protobuf:"varint,26,opt,name=has_unload_hook,json=hasUnloadHook,proto3" json:"has_unload_hook,omitempty"` // PluginRegistration.Unload → UNLOAD
HasMediaHooks bool `protobuf:"varint,27,opt,name=has_media_hooks,json=hasMediaHooks,proto3" json:"has_media_hooks,omitempty"` // PluginRegistration.MediaHooks → MEDIA_HOOK
HasProvisioner bool `protobuf:"varint,28,opt,name=has_provisioner,json=hasProvisioner,proto3" json:"has_provisioner,omitempty"` // PluginRegistration.RegisterWithProvisioner
// Core CMS services the plugin mounts with custom RBAC roles
// (CoreServiceBindings.Bind becomes a static declaration; the host
// constructs and mounts the handlers).
CoreServiceBindings []*CoreServiceBinding `protobuf:"bytes,29,rep,name=core_service_bindings,json=coreServiceBindings,proto3" json:"core_service_bindings,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PluginManifest) Reset() {
*x = PluginManifest{}
mi := &file_v1_manifest_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PluginManifest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PluginManifest) ProtoMessage() {}
func (x *PluginManifest) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PluginManifest.ProtoReflect.Descriptor instead.
func (*PluginManifest) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{0}
}
func (x *PluginManifest) GetAbiVersion() uint32 {
if x != nil {
return x.AbiVersion
}
return 0
}
func (x *PluginManifest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PluginManifest) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *PluginManifest) GetDependencies() []*Dependency {
if x != nil {
return x.Dependencies
}
return nil
}
func (x *PluginManifest) GetBlocks() []*BlockMeta {
if x != nil {
return x.Blocks
}
return nil
}
func (x *PluginManifest) GetBlockTemplateOverrides() []*BlockTemplateOverride {
if x != nil {
return x.BlockTemplateOverrides
}
return nil
}
func (x *PluginManifest) GetTemplateKeys() []string {
if x != nil {
return x.TemplateKeys
}
return nil
}
func (x *PluginManifest) GetSystemTemplates() []*SystemTemplateMeta {
if x != nil {
return x.SystemTemplates
}
return nil
}
func (x *PluginManifest) GetPageTemplates() []*PageTemplateMeta {
if x != nil {
return x.PageTemplates
}
return nil
}
func (x *PluginManifest) GetEmailWrapperSystemKeys() []string {
if x != nil {
return x.EmailWrapperSystemKeys
}
return nil
}
func (x *PluginManifest) GetAdminPages() []*AdminPage {
if x != nil {
return x.AdminPages
}
return nil
}
func (x *PluginManifest) GetSettingsSchema() []byte {
if x != nil {
return x.SettingsSchema
}
return nil
}
func (x *PluginManifest) GetThemePresets() []byte {
if x != nil {
return x.ThemePresets
}
return nil
}
func (x *PluginManifest) GetBundledFonts() []byte {
if x != nil {
return x.BundledFonts
}
return nil
}
func (x *PluginManifest) GetMasterPages() []*MasterPageDefinition {
if x != nil {
return x.MasterPages
}
return nil
}
func (x *PluginManifest) GetAiActions() []*AiAction {
if x != nil {
return x.AiActions
}
return nil
}
func (x *PluginManifest) GetRbacMethodRoles() map[string]string {
if x != nil {
return x.RbacMethodRoles
}
return nil
}
func (x *PluginManifest) GetCssManifest() *CssManifest {
if x != nil {
return x.CssManifest
}
return nil
}
func (x *PluginManifest) GetRequiredIconPacks() []string {
if x != nil {
return x.RequiredIconPacks
}
return nil
}
func (x *PluginManifest) GetDirectoryExtensions() *DirectoryExtensions {
if x != nil {
return x.DirectoryExtensions
}
return nil
}
func (x *PluginManifest) GetJobTypes() []string {
if x != nil {
return x.JobTypes
}
return nil
}
func (x *PluginManifest) GetRagContentFetcherTypes() []string {
if x != nil {
return x.RagContentFetcherTypes
}
return nil
}
func (x *PluginManifest) GetSettingsPanel() string {
if x != nil {
return x.SettingsPanel
}
return ""
}
func (x *PluginManifest) GetHasHttpHandler() bool {
if x != nil {
return x.HasHttpHandler
}
return false
}
func (x *PluginManifest) GetHasLoadHook() bool {
if x != nil {
return x.HasLoadHook
}
return false
}
func (x *PluginManifest) GetHasUnloadHook() bool {
if x != nil {
return x.HasUnloadHook
}
return false
}
func (x *PluginManifest) GetHasMediaHooks() bool {
if x != nil {
return x.HasMediaHooks
}
return false
}
func (x *PluginManifest) GetHasProvisioner() bool {
if x != nil {
return x.HasProvisioner
}
return false
}
func (x *PluginManifest) GetCoreServiceBindings() []*CoreServiceBinding {
if x != nil {
return x.CoreServiceBindings
}
return nil
}
// Dependency mirrors plugin.Dependency.
type Dependency struct {
state protoimpl.MessageState `protogen:"open.v1"`
Plugin string `protobuf:"bytes,1,opt,name=plugin,proto3" json:"plugin,omitempty"`
MinVersion string `protobuf:"bytes,2,opt,name=min_version,json=minVersion,proto3" json:"min_version,omitempty"`
Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Dependency) Reset() {
*x = Dependency{}
mi := &file_v1_manifest_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Dependency) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Dependency) ProtoMessage() {}
func (x *Dependency) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Dependency.ProtoReflect.Descriptor instead.
func (*Dependency) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{1}
}
func (x *Dependency) GetPlugin() string {
if x != nil {
return x.Plugin
}
return ""
}
func (x *Dependency) GetMinVersion() string {
if x != nil {
return x.MinVersion
}
return ""
}
func (x *Dependency) GetRequired() bool {
if x != nil {
return x.Required
}
return false
}
// BlockMeta mirrors blocks.BlockMeta. Source is omitted: the host assigns it
// from the manifest's plugin name at load time.
type BlockMeta struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// blocks.BlockCategory string ("content", "layout", "navigation", "blog",
// "theme").
Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
HasInternalSlot bool `protobuf:"varint,5,opt,name=has_internal_slot,json=hasInternalSlot,proto3" json:"has_internal_slot,omitempty"`
Hidden bool `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden,omitempty"`
EditorJs string `protobuf:"bytes,7,opt,name=editor_js,json=editorJs,proto3" json:"editor_js,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BlockMeta) Reset() {
*x = BlockMeta{}
mi := &file_v1_manifest_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BlockMeta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlockMeta) ProtoMessage() {}
func (x *BlockMeta) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlockMeta.ProtoReflect.Descriptor instead.
func (*BlockMeta) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{2}
}
func (x *BlockMeta) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *BlockMeta) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *BlockMeta) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *BlockMeta) GetCategory() string {
if x != nil {
return x.Category
}
return ""
}
func (x *BlockMeta) GetHasInternalSlot() bool {
if x != nil {
return x.HasInternalSlot
}
return false
}
func (x *BlockMeta) GetHidden() bool {
if x != nil {
return x.Hidden
}
return false
}
func (x *BlockMeta) GetEditorJs() string {
if x != nil {
return x.EditorJs
}
return ""
}
// BlockTemplateOverride captures BlockRegistry.RegisterTemplateOverride and
// RegisterTemplateOverrideWithSource registrations.
type BlockTemplateOverride struct {
state protoimpl.MessageState `protogen:"open.v1"`
TemplateKey string `protobuf:"bytes,1,opt,name=template_key,json=templateKey,proto3" json:"template_key,omitempty"`
BlockKey string `protobuf:"bytes,2,opt,name=block_key,json=blockKey,proto3" json:"block_key,omitempty"`
// Override source label; empty for plain RegisterTemplateOverride.
Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BlockTemplateOverride) Reset() {
*x = BlockTemplateOverride{}
mi := &file_v1_manifest_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BlockTemplateOverride) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlockTemplateOverride) ProtoMessage() {}
func (x *BlockTemplateOverride) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlockTemplateOverride.ProtoReflect.Descriptor instead.
func (*BlockTemplateOverride) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{3}
}
func (x *BlockTemplateOverride) GetTemplateKey() string {
if x != nil {
return x.TemplateKey
}
return ""
}
func (x *BlockTemplateOverride) GetBlockKey() string {
if x != nil {
return x.BlockKey
}
return ""
}
func (x *BlockTemplateOverride) GetSource() string {
if x != nil {
return x.Source
}
return ""
}
// SystemTemplateMeta mirrors templates.SystemTemplateMeta.
type SystemTemplateMeta struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SystemTemplateMeta) Reset() {
*x = SystemTemplateMeta{}
mi := &file_v1_manifest_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SystemTemplateMeta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SystemTemplateMeta) ProtoMessage() {}
func (x *SystemTemplateMeta) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SystemTemplateMeta.ProtoReflect.Descriptor instead.
func (*SystemTemplateMeta) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{4}
}
func (x *SystemTemplateMeta) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *SystemTemplateMeta) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *SystemTemplateMeta) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
// PageTemplateMeta mirrors templates.PageTemplateMeta plus the system
// template it was registered under.
type PageTemplateMeta struct {
state protoimpl.MessageState `protogen:"open.v1"`
SystemKey string `protobuf:"bytes,1,opt,name=system_key,json=systemKey,proto3" json:"system_key,omitempty"`
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
Slots []string `protobuf:"bytes,5,rep,name=slots,proto3" json:"slots,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PageTemplateMeta) Reset() {
*x = PageTemplateMeta{}
mi := &file_v1_manifest_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PageTemplateMeta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PageTemplateMeta) ProtoMessage() {}
func (x *PageTemplateMeta) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PageTemplateMeta.ProtoReflect.Descriptor instead.
func (*PageTemplateMeta) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{5}
}
func (x *PageTemplateMeta) GetSystemKey() string {
if x != nil {
return x.SystemKey
}
return ""
}
func (x *PageTemplateMeta) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *PageTemplateMeta) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *PageTemplateMeta) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *PageTemplateMeta) GetSlots() []string {
if x != nil {
return x.Slots
}
return nil
}
// AdminPage mirrors plugin.AdminPage.
type AdminPage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"`
Route string `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AdminPage) Reset() {
*x = AdminPage{}
mi := &file_v1_manifest_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AdminPage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdminPage) ProtoMessage() {}
func (x *AdminPage) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AdminPage.ProtoReflect.Descriptor instead.
func (*AdminPage) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{6}
}
func (x *AdminPage) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *AdminPage) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *AdminPage) GetIcon() string {
if x != nil {
return x.Icon
}
return ""
}
func (x *AdminPage) GetRoute() string {
if x != nil {
return x.Route
}
return ""
}
// AiAction mirrors plugin.AIAction.
type AiAction struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
DefaultProvider string `protobuf:"bytes,4,opt,name=default_provider,json=defaultProvider,proto3" json:"default_provider,omitempty"`
DefaultModel string `protobuf:"bytes,5,opt,name=default_model,json=defaultModel,proto3" json:"default_model,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AiAction) Reset() {
*x = AiAction{}
mi := &file_v1_manifest_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AiAction) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AiAction) ProtoMessage() {}
func (x *AiAction) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AiAction.ProtoReflect.Descriptor instead.
func (*AiAction) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{7}
}
func (x *AiAction) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *AiAction) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *AiAction) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *AiAction) GetDefaultProvider() string {
if x != nil {
return x.DefaultProvider
}
return ""
}
func (x *AiAction) GetDefaultModel() string {
if x != nil {
return x.DefaultModel
}
return ""
}
// CssManifest mirrors plugin.CSSManifest.
type CssManifest struct {
state protoimpl.MessageState `protogen:"open.v1"`
NpmPackages map[string]string `protobuf:"bytes,1,rep,name=npm_packages,json=npmPackages,proto3" json:"npm_packages,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
CssDirectives []string `protobuf:"bytes,2,rep,name=css_directives,json=cssDirectives,proto3" json:"css_directives,omitempty"`
InputCssAppend string `protobuf:"bytes,3,opt,name=input_css_append,json=inputCssAppend,proto3" json:"input_css_append,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CssManifest) Reset() {
*x = CssManifest{}
mi := &file_v1_manifest_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CssManifest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CssManifest) ProtoMessage() {}
func (x *CssManifest) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CssManifest.ProtoReflect.Descriptor instead.
func (*CssManifest) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{8}
}
func (x *CssManifest) GetNpmPackages() map[string]string {
if x != nil {
return x.NpmPackages
}
return nil
}
func (x *CssManifest) GetCssDirectives() []string {
if x != nil {
return x.CssDirectives
}
return nil
}
func (x *CssManifest) GetInputCssAppend() string {
if x != nil {
return x.InputCssAppend
}
return ""
}
// DirectoryExtensions mirrors the static fields of plugin.DirectoryExtensions.
type DirectoryExtensions struct {
state protoimpl.MessageState `protogen:"open.v1"`
BooleanFilterFields []string `protobuf:"bytes,1,rep,name=boolean_filter_fields,json=booleanFilterFields,proto3" json:"boolean_filter_fields,omitempty"`
SelectFilterFields []string `protobuf:"bytes,2,rep,name=select_filter_fields,json=selectFilterFields,proto3" json:"select_filter_fields,omitempty"`
BadgeLabels map[string]*BadgeLabel `protobuf:"bytes,3,rep,name=badge_labels,json=badgeLabels,proto3" json:"badge_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Counts of the callback slices (PanelSections / PinDecorators) so the host
// knows how many guest callbacks the plugin registered. Their invocation
// hook is a runtime-WO concern.
PanelSectionCount uint32 `protobuf:"varint,4,opt,name=panel_section_count,json=panelSectionCount,proto3" json:"panel_section_count,omitempty"`
PinDecoratorCount uint32 `protobuf:"varint,5,opt,name=pin_decorator_count,json=pinDecoratorCount,proto3" json:"pin_decorator_count,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DirectoryExtensions) Reset() {
*x = DirectoryExtensions{}
mi := &file_v1_manifest_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DirectoryExtensions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DirectoryExtensions) ProtoMessage() {}
func (x *DirectoryExtensions) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DirectoryExtensions.ProtoReflect.Descriptor instead.
func (*DirectoryExtensions) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{9}
}
func (x *DirectoryExtensions) GetBooleanFilterFields() []string {
if x != nil {
return x.BooleanFilterFields
}
return nil
}
func (x *DirectoryExtensions) GetSelectFilterFields() []string {
if x != nil {
return x.SelectFilterFields
}
return nil
}
func (x *DirectoryExtensions) GetBadgeLabels() map[string]*BadgeLabel {
if x != nil {
return x.BadgeLabels
}
return nil
}
func (x *DirectoryExtensions) GetPanelSectionCount() uint32 {
if x != nil {
return x.PanelSectionCount
}
return 0
}
func (x *DirectoryExtensions) GetPinDecoratorCount() uint32 {
if x != nil {
return x.PinDecoratorCount
}
return 0
}
// BadgeLabel mirrors the [2]string value of DirectoryExtensions.BadgeLabels.
type BadgeLabel struct {
state protoimpl.MessageState `protogen:"open.v1"`
Positive string `protobuf:"bytes,1,opt,name=positive,proto3" json:"positive,omitempty"`
Negative string `protobuf:"bytes,2,opt,name=negative,proto3" json:"negative,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BadgeLabel) Reset() {
*x = BadgeLabel{}
mi := &file_v1_manifest_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BadgeLabel) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BadgeLabel) ProtoMessage() {}
func (x *BadgeLabel) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BadgeLabel.ProtoReflect.Descriptor instead.
func (*BadgeLabel) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{10}
}
func (x *BadgeLabel) GetPositive() string {
if x != nil {
return x.Positive
}
return ""
}
func (x *BadgeLabel) GetNegative() string {
if x != nil {
return x.Negative
}
return ""
}
// MasterPageDefinition mirrors plugin.MasterPageDefinition.
type MasterPageDefinition struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
PageTemplates []string `protobuf:"bytes,3,rep,name=page_templates,json=pageTemplates,proto3" json:"page_templates,omitempty"`
Blocks []*MasterPageBlock `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MasterPageDefinition) Reset() {
*x = MasterPageDefinition{}
mi := &file_v1_manifest_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MasterPageDefinition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MasterPageDefinition) ProtoMessage() {}
func (x *MasterPageDefinition) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MasterPageDefinition.ProtoReflect.Descriptor instead.
func (*MasterPageDefinition) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{11}
}
func (x *MasterPageDefinition) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *MasterPageDefinition) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *MasterPageDefinition) GetPageTemplates() []string {
if x != nil {
return x.PageTemplates
}
return nil
}
func (x *MasterPageDefinition) GetBlocks() []*MasterPageBlock {
if x != nil {
return x.Blocks
}
return nil
}
// MasterPageBlock mirrors plugin.MasterPageBlock.
type MasterPageBlock struct {
state protoimpl.MessageState `protogen:"open.v1"`
BlockKey string `protobuf:"bytes,1,opt,name=block_key,json=blockKey,proto3" json:"block_key,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
// JSON encoding of the block's content map.
ContentJson []byte `protobuf:"bytes,3,opt,name=content_json,json=contentJson,proto3" json:"content_json,omitempty"`
HtmlContent *string `protobuf:"bytes,4,opt,name=html_content,json=htmlContent,proto3,oneof" json:"html_content,omitempty"`
Slot string `protobuf:"bytes,5,opt,name=slot,proto3" json:"slot,omitempty"`
SortOrder int32 `protobuf:"varint,6,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MasterPageBlock) Reset() {
*x = MasterPageBlock{}
mi := &file_v1_manifest_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MasterPageBlock) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MasterPageBlock) ProtoMessage() {}
func (x *MasterPageBlock) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MasterPageBlock.ProtoReflect.Descriptor instead.
func (*MasterPageBlock) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{12}
}
func (x *MasterPageBlock) GetBlockKey() string {
if x != nil {
return x.BlockKey
}
return ""
}
func (x *MasterPageBlock) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *MasterPageBlock) GetContentJson() []byte {
if x != nil {
return x.ContentJson
}
return nil
}
func (x *MasterPageBlock) GetHtmlContent() string {
if x != nil && x.HtmlContent != nil {
return *x.HtmlContent
}
return ""
}
func (x *MasterPageBlock) GetSlot() string {
if x != nil {
return x.Slot
}
return ""
}
func (x *MasterPageBlock) GetSortOrder() int32 {
if x != nil {
return x.SortOrder
}
return 0
}
// CoreServiceBinding mirrors a plugin.CoreServiceBindings.Bind call: mount
// the named core-provided Connect service with these RBAC roles.
type CoreServiceBinding struct {
state protoimpl.MessageState `protogen:"open.v1"`
ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
MethodRoles map[string]string `protobuf:"bytes,2,rep,name=method_roles,json=methodRoles,proto3" json:"method_roles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CoreServiceBinding) Reset() {
*x = CoreServiceBinding{}
mi := &file_v1_manifest_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CoreServiceBinding) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CoreServiceBinding) ProtoMessage() {}
func (x *CoreServiceBinding) ProtoReflect() protoreflect.Message {
mi := &file_v1_manifest_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CoreServiceBinding.ProtoReflect.Descriptor instead.
func (*CoreServiceBinding) Descriptor() ([]byte, []int) {
return file_v1_manifest_proto_rawDescGZIP(), []int{13}
}
func (x *CoreServiceBinding) GetServiceName() string {
if x != nil {
return x.ServiceName
}
return ""
}
func (x *CoreServiceBinding) GetMethodRoles() map[string]string {
if x != nil {
return x.MethodRoles
}
return nil
}
var File_v1_manifest_proto protoreflect.FileDescriptor
const file_v1_manifest_proto_rawDesc = "" +
"\n" +
"\x11v1/manifest.proto\x12\x06abi.v1\"\x87\f\n" +
"\x0ePluginManifest\x12\x1f\n" +
"\vabi_version\x18\x01 \x01(\rR\n" +
"abiVersion\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12\x18\n" +
"\aversion\x18\x03 \x01(\tR\aversion\x126\n" +
"\fdependencies\x18\x04 \x03(\v2\x12.abi.v1.DependencyR\fdependencies\x12)\n" +
"\x06blocks\x18\x05 \x03(\v2\x11.abi.v1.BlockMetaR\x06blocks\x12W\n" +
"\x18block_template_overrides\x18\x06 \x03(\v2\x1d.abi.v1.BlockTemplateOverrideR\x16blockTemplateOverrides\x12#\n" +
"\rtemplate_keys\x18\a \x03(\tR\ftemplateKeys\x12E\n" +
"\x10system_templates\x18\b \x03(\v2\x1a.abi.v1.SystemTemplateMetaR\x0fsystemTemplates\x12?\n" +
"\x0epage_templates\x18\t \x03(\v2\x18.abi.v1.PageTemplateMetaR\rpageTemplates\x129\n" +
"\x19email_wrapper_system_keys\x18\n" +
" \x03(\tR\x16emailWrapperSystemKeys\x122\n" +
"\vadmin_pages\x18\v \x03(\v2\x11.abi.v1.AdminPageR\n" +
"adminPages\x12'\n" +
"\x0fsettings_schema\x18\f \x01(\fR\x0esettingsSchema\x12#\n" +
"\rtheme_presets\x18\r \x01(\fR\fthemePresets\x12#\n" +
"\rbundled_fonts\x18\x0e \x01(\fR\fbundledFonts\x12?\n" +
"\fmaster_pages\x18\x0f \x03(\v2\x1c.abi.v1.MasterPageDefinitionR\vmasterPages\x12/\n" +
"\n" +
"ai_actions\x18\x10 \x03(\v2\x10.abi.v1.AiActionR\taiActions\x12W\n" +
"\x11rbac_method_roles\x18\x11 \x03(\v2+.abi.v1.PluginManifest.RbacMethodRolesEntryR\x0frbacMethodRoles\x126\n" +
"\fcss_manifest\x18\x12 \x01(\v2\x13.abi.v1.CssManifestR\vcssManifest\x12.\n" +
"\x13required_icon_packs\x18\x13 \x03(\tR\x11requiredIconPacks\x12N\n" +
"\x14directory_extensions\x18\x14 \x01(\v2\x1b.abi.v1.DirectoryExtensionsR\x13directoryExtensions\x12\x1b\n" +
"\tjob_types\x18\x15 \x03(\tR\bjobTypes\x129\n" +
"\x19rag_content_fetcher_types\x18\x16 \x03(\tR\x16ragContentFetcherTypes\x12%\n" +
"\x0esettings_panel\x18\x17 \x01(\tR\rsettingsPanel\x12(\n" +
"\x10has_http_handler\x18\x18 \x01(\bR\x0ehasHttpHandler\x12\"\n" +
"\rhas_load_hook\x18\x19 \x01(\bR\vhasLoadHook\x12&\n" +
"\x0fhas_unload_hook\x18\x1a \x01(\bR\rhasUnloadHook\x12&\n" +
"\x0fhas_media_hooks\x18\x1b \x01(\bR\rhasMediaHooks\x12'\n" +
"\x0fhas_provisioner\x18\x1c \x01(\bR\x0ehasProvisioner\x12N\n" +
"\x15core_service_bindings\x18\x1d \x03(\v2\x1a.abi.v1.CoreServiceBindingR\x13coreServiceBindings\x1aB\n" +
"\x14RbacMethodRolesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"a\n" +
"\n" +
"Dependency\x12\x16\n" +
"\x06plugin\x18\x01 \x01(\tR\x06plugin\x12\x1f\n" +
"\vmin_version\x18\x02 \x01(\tR\n" +
"minVersion\x12\x1a\n" +
"\brequired\x18\x03 \x01(\bR\brequired\"\xd2\x01\n" +
"\tBlockMeta\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
"\vdescription\x18\x03 \x01(\tR\vdescription\x12\x1a\n" +
"\bcategory\x18\x04 \x01(\tR\bcategory\x12*\n" +
"\x11has_internal_slot\x18\x05 \x01(\bR\x0fhasInternalSlot\x12\x16\n" +
"\x06hidden\x18\x06 \x01(\bR\x06hidden\x12\x1b\n" +
"\teditor_js\x18\a \x01(\tR\beditorJs\"o\n" +
"\x15BlockTemplateOverride\x12!\n" +
"\ftemplate_key\x18\x01 \x01(\tR\vtemplateKey\x12\x1b\n" +
"\tblock_key\x18\x02 \x01(\tR\bblockKey\x12\x16\n" +
"\x06source\x18\x03 \x01(\tR\x06source\"^\n" +
"\x12SystemTemplateMeta\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
"\vdescription\x18\x03 \x01(\tR\vdescription\"\x91\x01\n" +
"\x10PageTemplateMeta\x12\x1d\n" +
"\n" +
"system_key\x18\x01 \x01(\tR\tsystemKey\x12\x10\n" +
"\x03key\x18\x02 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
"\vdescription\x18\x04 \x01(\tR\vdescription\x12\x14\n" +
"\x05slots\x18\x05 \x03(\tR\x05slots\"]\n" +
"\tAdminPage\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12\x12\n" +
"\x04icon\x18\x03 \x01(\tR\x04icon\x12\x14\n" +
"\x05route\x18\x04 \x01(\tR\x05route\"\xa4\x01\n" +
"\bAiAction\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
"\vdescription\x18\x03 \x01(\tR\vdescription\x12)\n" +
"\x10default_provider\x18\x04 \x01(\tR\x0fdefaultProvider\x12#\n" +
"\rdefault_model\x18\x05 \x01(\tR\fdefaultModel\"\xe7\x01\n" +
"\vCssManifest\x12G\n" +
"\fnpm_packages\x18\x01 \x03(\v2$.abi.v1.CssManifest.NpmPackagesEntryR\vnpmPackages\x12%\n" +
"\x0ecss_directives\x18\x02 \x03(\tR\rcssDirectives\x12(\n" +
"\x10input_css_append\x18\x03 \x01(\tR\x0einputCssAppend\x1a>\n" +
"\x10NpmPackagesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x80\x03\n" +
"\x13DirectoryExtensions\x122\n" +
"\x15boolean_filter_fields\x18\x01 \x03(\tR\x13booleanFilterFields\x120\n" +
"\x14select_filter_fields\x18\x02 \x03(\tR\x12selectFilterFields\x12O\n" +
"\fbadge_labels\x18\x03 \x03(\v2,.abi.v1.DirectoryExtensions.BadgeLabelsEntryR\vbadgeLabels\x12.\n" +
"\x13panel_section_count\x18\x04 \x01(\rR\x11panelSectionCount\x12.\n" +
"\x13pin_decorator_count\x18\x05 \x01(\rR\x11pinDecoratorCount\x1aR\n" +
"\x10BadgeLabelsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12(\n" +
"\x05value\x18\x02 \x01(\v2\x12.abi.v1.BadgeLabelR\x05value:\x028\x01\"D\n" +
"\n" +
"BadgeLabel\x12\x1a\n" +
"\bpositive\x18\x01 \x01(\tR\bpositive\x12\x1a\n" +
"\bnegative\x18\x02 \x01(\tR\bnegative\"\x96\x01\n" +
"\x14MasterPageDefinition\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12%\n" +
"\x0epage_templates\x18\x03 \x03(\tR\rpageTemplates\x12/\n" +
"\x06blocks\x18\x04 \x03(\v2\x17.abi.v1.MasterPageBlockR\x06blocks\"\xd3\x01\n" +
"\x0fMasterPageBlock\x12\x1b\n" +
"\tblock_key\x18\x01 \x01(\tR\bblockKey\x12\x14\n" +
"\x05title\x18\x02 \x01(\tR\x05title\x12!\n" +
"\fcontent_json\x18\x03 \x01(\fR\vcontentJson\x12&\n" +
"\fhtml_content\x18\x04 \x01(\tH\x00R\vhtmlContent\x88\x01\x01\x12\x12\n" +
"\x04slot\x18\x05 \x01(\tR\x04slot\x12\x1d\n" +
"\n" +
"sort_order\x18\x06 \x01(\x05R\tsortOrderB\x0f\n" +
"\r_html_content\"\xc7\x01\n" +
"\x12CoreServiceBinding\x12!\n" +
"\fservice_name\x18\x01 \x01(\tR\vserviceName\x12N\n" +
"\fmethod_roles\x18\x02 \x03(\v2+.abi.v1.CoreServiceBinding.MethodRolesEntryR\vmethodRoles\x1a>\n" +
"\x10MethodRolesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B0Z.git.dev.alexdunmow.com/block/core/abi/v1;abiv1b\x06proto3"
var (
file_v1_manifest_proto_rawDescOnce sync.Once
file_v1_manifest_proto_rawDescData []byte
)
func file_v1_manifest_proto_rawDescGZIP() []byte {
file_v1_manifest_proto_rawDescOnce.Do(func() {
file_v1_manifest_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_v1_manifest_proto_rawDesc), len(file_v1_manifest_proto_rawDesc)))
})
return file_v1_manifest_proto_rawDescData
}
var file_v1_manifest_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_v1_manifest_proto_goTypes = []any{
(*PluginManifest)(nil), // 0: abi.v1.PluginManifest
(*Dependency)(nil), // 1: abi.v1.Dependency
(*BlockMeta)(nil), // 2: abi.v1.BlockMeta
(*BlockTemplateOverride)(nil), // 3: abi.v1.BlockTemplateOverride
(*SystemTemplateMeta)(nil), // 4: abi.v1.SystemTemplateMeta
(*PageTemplateMeta)(nil), // 5: abi.v1.PageTemplateMeta
(*AdminPage)(nil), // 6: abi.v1.AdminPage
(*AiAction)(nil), // 7: abi.v1.AiAction
(*CssManifest)(nil), // 8: abi.v1.CssManifest
(*DirectoryExtensions)(nil), // 9: abi.v1.DirectoryExtensions
(*BadgeLabel)(nil), // 10: abi.v1.BadgeLabel
(*MasterPageDefinition)(nil), // 11: abi.v1.MasterPageDefinition
(*MasterPageBlock)(nil), // 12: abi.v1.MasterPageBlock
(*CoreServiceBinding)(nil), // 13: abi.v1.CoreServiceBinding
nil, // 14: abi.v1.PluginManifest.RbacMethodRolesEntry
nil, // 15: abi.v1.CssManifest.NpmPackagesEntry
nil, // 16: abi.v1.DirectoryExtensions.BadgeLabelsEntry
nil, // 17: abi.v1.CoreServiceBinding.MethodRolesEntry
}
var file_v1_manifest_proto_depIdxs = []int32{
1, // 0: abi.v1.PluginManifest.dependencies:type_name -> abi.v1.Dependency
2, // 1: abi.v1.PluginManifest.blocks:type_name -> abi.v1.BlockMeta
3, // 2: abi.v1.PluginManifest.block_template_overrides:type_name -> abi.v1.BlockTemplateOverride
4, // 3: abi.v1.PluginManifest.system_templates:type_name -> abi.v1.SystemTemplateMeta
5, // 4: abi.v1.PluginManifest.page_templates:type_name -> abi.v1.PageTemplateMeta
6, // 5: abi.v1.PluginManifest.admin_pages:type_name -> abi.v1.AdminPage
11, // 6: abi.v1.PluginManifest.master_pages:type_name -> abi.v1.MasterPageDefinition
7, // 7: abi.v1.PluginManifest.ai_actions:type_name -> abi.v1.AiAction
14, // 8: abi.v1.PluginManifest.rbac_method_roles:type_name -> abi.v1.PluginManifest.RbacMethodRolesEntry
8, // 9: abi.v1.PluginManifest.css_manifest:type_name -> abi.v1.CssManifest
9, // 10: abi.v1.PluginManifest.directory_extensions:type_name -> abi.v1.DirectoryExtensions
13, // 11: abi.v1.PluginManifest.core_service_bindings:type_name -> abi.v1.CoreServiceBinding
15, // 12: abi.v1.CssManifest.npm_packages:type_name -> abi.v1.CssManifest.NpmPackagesEntry
16, // 13: abi.v1.DirectoryExtensions.badge_labels:type_name -> abi.v1.DirectoryExtensions.BadgeLabelsEntry
12, // 14: abi.v1.MasterPageDefinition.blocks:type_name -> abi.v1.MasterPageBlock
17, // 15: abi.v1.CoreServiceBinding.method_roles:type_name -> abi.v1.CoreServiceBinding.MethodRolesEntry
10, // 16: abi.v1.DirectoryExtensions.BadgeLabelsEntry.value:type_name -> abi.v1.BadgeLabel
17, // [17:17] is the sub-list for method output_type
17, // [17:17] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension type_name
17, // [17:17] is the sub-list for extension extendee
0, // [0:17] is the sub-list for field type_name
}
func init() { file_v1_manifest_proto_init() }
func file_v1_manifest_proto_init() {
if File_v1_manifest_proto != nil {
return
}
file_v1_manifest_proto_msgTypes[12].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_manifest_proto_rawDesc), len(file_v1_manifest_proto_rawDesc)),
NumEnums: 0,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_v1_manifest_proto_goTypes,
DependencyIndexes: file_v1_manifest_proto_depIdxs,
MessageInfos: file_v1_manifest_proto_msgTypes,
}.Build()
File_v1_manifest_proto = out.File
file_v1_manifest_proto_goTypes = nil
file_v1_manifest_proto_depIdxs = nil
}