pongo2 stays host-side and is never compiled into a guest; plugins render
templates by handing the host a {template, data} pair, and the host calls
back into the free guest instance for plugin-declared tags/filters.
ABI (additive, buf-breaking clean):
- RenderBlockResponse gains a `powered` PoweredBlock{template, data_json};
a block returns EITHER html OR powered.
- New hooks HOOK_RENDER_TAG (10) / HOOK_APPLY_FILTER (11) with
RenderTag{Request,Response} and ApplyFilter{Request,Response}.
- PluginManifest gains repeated declared_tags / declared_filters (31/32).
Guest SDK (core/blocks, core/plugin/wasmguest):
- blocks.PoweredBlock(template, data) / DecodePoweredBlock: NUL-sentinel
marker so BlockFunc's string signature is unchanged (smallest additive
change — no ripple to existing blocks or the host guest-side).
- blocks.RegisterTag / RegisterFilter (+ RenderContext = context.Context)
write a package-level registry; runRegister resets it per registration
for deterministic DESCRIBE + dispatch.
- DESCRIBE emits declared_tags/filters; dispatch handles RENDER_TAG /
APPLY_FILTER (fn errors → response.error; panics → AbiError INTERNAL,
instance stays callable).
Docs: core/docs/wasm-abi.md gains the render-as-a-host-capability model,
the powered-block flow (re-entrancy-free), the plugin API, and the
HOST-SIDE CONTRACT the cms phase implements.
Tests: unit round-trips for powered/RENDER_TAG/APPLY_FILTER (dispatch +
error + unknown + panic + per-guest registry isolation) plus a real
wazero round-trip through the compiled fixture module. Verified no
guest-reachable package imports pongo2 (go list -deps on the wasip1
fixture build is clean).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1409 lines
42 KiB
Go
1409 lines
42 KiB
Go
// invoke.proto — the bn_invoke envelope, hook catalog, and the job/lifecycle
|
|
// hook payloads (WO-WZ-001).
|
|
//
|
|
// Every host→guest call crosses the wasm boundary as one guest export:
|
|
//
|
|
// bn_invoke(hook_id, ptr, len) → packed(ptr, len)
|
|
//
|
|
// where (ptr, len) frames a serialized InvokeRequest and the packed return
|
|
// frames a serialized InvokeResponse. Hook-specific payloads (render.proto,
|
|
// http.proto, and the messages below) travel inside InvokeRequest.payload /
|
|
// InvokeResponse.payload. See core/docs/wasm-abi.md.
|
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc (unknown)
|
|
// source: v1/invoke.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)
|
|
)
|
|
|
|
// Hook identifies the guest entry point being invoked.
|
|
type Hook int32
|
|
|
|
const (
|
|
Hook_HOOK_UNSPECIFIED Hook = 0
|
|
// Render one block: payload = RenderBlockRequest / RenderBlockResponse.
|
|
Hook_HOOK_RENDER_BLOCK Hook = 1
|
|
// Render one template: payload = RenderTemplateRequest / RenderTemplateResponse.
|
|
Hook_HOOK_RENDER_TEMPLATE Hook = 2
|
|
// Forward a buffered HTTP request to the guest's mux:
|
|
// payload = HttpRequest / HttpResponse.
|
|
Hook_HOOK_HANDLE_HTTP Hook = 3
|
|
// Run a background job handler: payload = JobRequest / JobResponse.
|
|
Hook_HOOK_JOB Hook = 4
|
|
// Plugin load lifecycle: payload = LoadRequest / LoadResponse.
|
|
Hook_HOOK_LOAD Hook = 5
|
|
// Plugin unload lifecycle: payload = UnloadRequest / UnloadResponse.
|
|
Hook_HOOK_UNLOAD Hook = 6
|
|
// Re-fetch content for RAG re-indexing:
|
|
// payload = RagFetchRequest / RagFetchResponse.
|
|
Hook_HOOK_RAG_FETCH Hook = 7
|
|
// Media lifecycle event delivery: payload = MediaHookRequest / MediaHookResponse.
|
|
Hook_HOOK_MEDIA_HOOK Hook = 8
|
|
// Capture the static manifest at publish time:
|
|
// payload = DescribeRequest / DescribeResponse.
|
|
Hook_HOOK_DESCRIBE Hook = 9
|
|
// Invoke a plugin-declared template tag (manifest.declared_tags) that the
|
|
// host engine hit while rendering a powered block:
|
|
// payload = RenderTagRequest / RenderTagResponse.
|
|
Hook_HOOK_RENDER_TAG Hook = 10
|
|
// Apply a plugin-declared template filter (manifest.declared_filters):
|
|
// payload = ApplyFilterRequest / ApplyFilterResponse.
|
|
Hook_HOOK_APPLY_FILTER Hook = 11
|
|
)
|
|
|
|
// Enum value maps for Hook.
|
|
var (
|
|
Hook_name = map[int32]string{
|
|
0: "HOOK_UNSPECIFIED",
|
|
1: "HOOK_RENDER_BLOCK",
|
|
2: "HOOK_RENDER_TEMPLATE",
|
|
3: "HOOK_HANDLE_HTTP",
|
|
4: "HOOK_JOB",
|
|
5: "HOOK_LOAD",
|
|
6: "HOOK_UNLOAD",
|
|
7: "HOOK_RAG_FETCH",
|
|
8: "HOOK_MEDIA_HOOK",
|
|
9: "HOOK_DESCRIBE",
|
|
10: "HOOK_RENDER_TAG",
|
|
11: "HOOK_APPLY_FILTER",
|
|
}
|
|
Hook_value = map[string]int32{
|
|
"HOOK_UNSPECIFIED": 0,
|
|
"HOOK_RENDER_BLOCK": 1,
|
|
"HOOK_RENDER_TEMPLATE": 2,
|
|
"HOOK_HANDLE_HTTP": 3,
|
|
"HOOK_JOB": 4,
|
|
"HOOK_LOAD": 5,
|
|
"HOOK_UNLOAD": 6,
|
|
"HOOK_RAG_FETCH": 7,
|
|
"HOOK_MEDIA_HOOK": 8,
|
|
"HOOK_DESCRIBE": 9,
|
|
"HOOK_RENDER_TAG": 10,
|
|
"HOOK_APPLY_FILTER": 11,
|
|
}
|
|
)
|
|
|
|
func (x Hook) Enum() *Hook {
|
|
p := new(Hook)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Hook) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Hook) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_invoke_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (Hook) Type() protoreflect.EnumType {
|
|
return &file_v1_invoke_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x Hook) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook.Descriptor instead.
|
|
func (Hook) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
// AbiErrorCode classifies boundary-crossing failures.
|
|
type AbiErrorCode int32
|
|
|
|
const (
|
|
AbiErrorCode_ABI_ERROR_CODE_UNSPECIFIED AbiErrorCode = 0
|
|
// The handler ran and failed; message carries the Go error text.
|
|
AbiErrorCode_ABI_ERROR_CODE_INTERNAL AbiErrorCode = 1
|
|
// The payload could not be decoded.
|
|
AbiErrorCode_ABI_ERROR_CODE_DECODE AbiErrorCode = 2
|
|
// The hook/capability is not implemented by the callee.
|
|
AbiErrorCode_ABI_ERROR_CODE_UNIMPLEMENTED AbiErrorCode = 3
|
|
// The call exceeded its deadline; the instance is considered poisoned.
|
|
AbiErrorCode_ABI_ERROR_CODE_DEADLINE_EXCEEDED AbiErrorCode = 4
|
|
// The caller is not entitled to this capability.
|
|
AbiErrorCode_ABI_ERROR_CODE_PERMISSION_DENIED AbiErrorCode = 5
|
|
// A db.* call named a transaction handle the host has already expired
|
|
// (dropped at the call-chain deadline, WO-WZ-007). Distinct from a real
|
|
// fault: the unit of work is retryable in a fresh transaction. Emitted by
|
|
// the cms dbexec side (adopted separately) and mapped guest-side to
|
|
// bnwasm.ErrTxExpired.
|
|
AbiErrorCode_ABI_ERROR_CODE_TX_EXPIRED AbiErrorCode = 6
|
|
)
|
|
|
|
// Enum value maps for AbiErrorCode.
|
|
var (
|
|
AbiErrorCode_name = map[int32]string{
|
|
0: "ABI_ERROR_CODE_UNSPECIFIED",
|
|
1: "ABI_ERROR_CODE_INTERNAL",
|
|
2: "ABI_ERROR_CODE_DECODE",
|
|
3: "ABI_ERROR_CODE_UNIMPLEMENTED",
|
|
4: "ABI_ERROR_CODE_DEADLINE_EXCEEDED",
|
|
5: "ABI_ERROR_CODE_PERMISSION_DENIED",
|
|
6: "ABI_ERROR_CODE_TX_EXPIRED",
|
|
}
|
|
AbiErrorCode_value = map[string]int32{
|
|
"ABI_ERROR_CODE_UNSPECIFIED": 0,
|
|
"ABI_ERROR_CODE_INTERNAL": 1,
|
|
"ABI_ERROR_CODE_DECODE": 2,
|
|
"ABI_ERROR_CODE_UNIMPLEMENTED": 3,
|
|
"ABI_ERROR_CODE_DEADLINE_EXCEEDED": 4,
|
|
"ABI_ERROR_CODE_PERMISSION_DENIED": 5,
|
|
"ABI_ERROR_CODE_TX_EXPIRED": 6,
|
|
}
|
|
)
|
|
|
|
func (x AbiErrorCode) Enum() *AbiErrorCode {
|
|
p := new(AbiErrorCode)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x AbiErrorCode) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (AbiErrorCode) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_invoke_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (AbiErrorCode) Type() protoreflect.EnumType {
|
|
return &file_v1_invoke_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x AbiErrorCode) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use AbiErrorCode.Descriptor instead.
|
|
func (AbiErrorCode) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
// InvokeRequest is the host→guest call envelope.
|
|
type InvokeRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Hook Hook `protobuf:"varint,1,opt,name=hook,proto3,enum=abi.v1.Hook" json:"hook,omitempty"`
|
|
// Serialized hook-specific request message (see Hook value comments).
|
|
Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
// Milliseconds the guest has to answer; the host also enforces this
|
|
// deadline on the wasm instance (WithCloseOnContextDone).
|
|
DeadlineMs int64 `protobuf:"varint,3,opt,name=deadline_ms,json=deadlineMs,proto3" json:"deadline_ms,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *InvokeRequest) Reset() {
|
|
*x = InvokeRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *InvokeRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*InvokeRequest) ProtoMessage() {}
|
|
|
|
func (x *InvokeRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 InvokeRequest.ProtoReflect.Descriptor instead.
|
|
func (*InvokeRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *InvokeRequest) GetHook() Hook {
|
|
if x != nil {
|
|
return x.Hook
|
|
}
|
|
return Hook_HOOK_UNSPECIFIED
|
|
}
|
|
|
|
func (x *InvokeRequest) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *InvokeRequest) GetDeadlineMs() int64 {
|
|
if x != nil {
|
|
return x.DeadlineMs
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// InvokeResponse is the guest→host return envelope.
|
|
type InvokeResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Serialized hook-specific response message; empty when error is set.
|
|
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
// Set when the hook failed; the host treats decode failures and traps as
|
|
// implicit ABI_ERROR_CODE_INTERNAL.
|
|
Error *AbiError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *InvokeResponse) Reset() {
|
|
*x = InvokeResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *InvokeResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*InvokeResponse) ProtoMessage() {}
|
|
|
|
func (x *InvokeResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 InvokeResponse.ProtoReflect.Descriptor instead.
|
|
func (*InvokeResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *InvokeResponse) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *InvokeResponse) GetError() *AbiError {
|
|
if x != nil {
|
|
return x.Error
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// AbiError is the structured error carried by InvokeResponse and
|
|
// HostCallResponse.
|
|
type AbiError struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Code AbiErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=abi.v1.AbiErrorCode" json:"code,omitempty"`
|
|
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AbiError) Reset() {
|
|
*x = AbiError{}
|
|
mi := &file_v1_invoke_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AbiError) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AbiError) ProtoMessage() {}
|
|
|
|
func (x *AbiError) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 AbiError.ProtoReflect.Descriptor instead.
|
|
func (*AbiError) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *AbiError) GetCode() AbiErrorCode {
|
|
if x != nil {
|
|
return x.Code
|
|
}
|
|
return AbiErrorCode_ABI_ERROR_CODE_UNSPECIFIED
|
|
}
|
|
|
|
func (x *AbiError) GetMessage() string {
|
|
if x != nil {
|
|
return x.Message
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// DescribeRequest asks the guest for its static manifest (publish time only).
|
|
type DescribeRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// ABI major version of the calling host/publish tool.
|
|
HostAbiVersion uint32 `protobuf:"varint,1,opt,name=host_abi_version,json=hostAbiVersion,proto3" json:"host_abi_version,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DescribeRequest) Reset() {
|
|
*x = DescribeRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DescribeRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DescribeRequest) ProtoMessage() {}
|
|
|
|
func (x *DescribeRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 DescribeRequest.ProtoReflect.Descriptor instead.
|
|
func (*DescribeRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *DescribeRequest) GetHostAbiVersion() uint32 {
|
|
if x != nil {
|
|
return x.HostAbiVersion
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// DescribeResponse returns the static manifest.
|
|
type DescribeResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Manifest *PluginManifest `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DescribeResponse) Reset() {
|
|
*x = DescribeResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DescribeResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DescribeResponse) ProtoMessage() {}
|
|
|
|
func (x *DescribeResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 DescribeResponse.ProtoReflect.Descriptor instead.
|
|
func (*DescribeResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *DescribeResponse) GetManifest() *PluginManifest {
|
|
if x != nil {
|
|
return x.Manifest
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LoadRequest carries the static host configuration the .so world exposed as
|
|
// CoreServices.AppURL / CoreServices.MediaPath.
|
|
type LoadRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
HostConfig *HostConfig `protobuf:"bytes,1,opt,name=host_config,json=hostConfig,proto3" json:"host_config,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LoadRequest) Reset() {
|
|
*x = LoadRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LoadRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LoadRequest) ProtoMessage() {}
|
|
|
|
func (x *LoadRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 LoadRequest.ProtoReflect.Descriptor instead.
|
|
func (*LoadRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *LoadRequest) GetHostConfig() *HostConfig {
|
|
if x != nil {
|
|
return x.HostConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// HostConfig mirrors the plain-value CoreServices fields.
|
|
type HostConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
AppUrl string `protobuf:"bytes,1,opt,name=app_url,json=appUrl,proto3" json:"app_url,omitempty"` // CoreServices.AppURL
|
|
MediaPath string `protobuf:"bytes,2,opt,name=media_path,json=mediaPath,proto3" json:"media_path,omitempty"` // CoreServices.MediaPath
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *HostConfig) Reset() {
|
|
*x = HostConfig{}
|
|
mi := &file_v1_invoke_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *HostConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HostConfig) ProtoMessage() {}
|
|
|
|
func (x *HostConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 HostConfig.ProtoReflect.Descriptor instead.
|
|
func (*HostConfig) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *HostConfig) GetAppUrl() string {
|
|
if x != nil {
|
|
return x.AppUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HostConfig) GetMediaPath() string {
|
|
if x != nil {
|
|
return x.MediaPath
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type LoadResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LoadResponse) Reset() {
|
|
*x = LoadResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LoadResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LoadResponse) ProtoMessage() {}
|
|
|
|
func (x *LoadResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 LoadResponse.ProtoReflect.Descriptor instead.
|
|
func (*LoadResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
type UnloadRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UnloadRequest) Reset() {
|
|
*x = UnloadRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UnloadRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UnloadRequest) ProtoMessage() {}
|
|
|
|
func (x *UnloadRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 UnloadRequest.ProtoReflect.Descriptor instead.
|
|
func (*UnloadRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
type UnloadResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UnloadResponse) Reset() {
|
|
*x = UnloadResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UnloadResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UnloadResponse) ProtoMessage() {}
|
|
|
|
func (x *UnloadResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 UnloadResponse.ProtoReflect.Descriptor instead.
|
|
func (*UnloadResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
// JobRequest dispatches one background job to the guest handler registered
|
|
// for job_type (manifest.job_types).
|
|
type JobRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
JobType string `protobuf:"bytes,1,opt,name=job_type,json=jobType,proto3" json:"job_type,omitempty"`
|
|
// JSON job configuration (json.RawMessage in JobHandlerFunc).
|
|
ConfigJson []byte `protobuf:"bytes,2,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *JobRequest) Reset() {
|
|
*x = JobRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *JobRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*JobRequest) ProtoMessage() {}
|
|
|
|
func (x *JobRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 JobRequest.ProtoReflect.Descriptor instead.
|
|
func (*JobRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *JobRequest) GetJobType() string {
|
|
if x != nil {
|
|
return x.JobType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *JobRequest) GetConfigJson() []byte {
|
|
if x != nil {
|
|
return x.ConfigJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// JobResponse returns the handler's JSON result.
|
|
type JobResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ResultJson []byte `protobuf:"bytes,1,opt,name=result_json,json=resultJson,proto3" json:"result_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *JobResponse) Reset() {
|
|
*x = JobResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *JobResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*JobResponse) ProtoMessage() {}
|
|
|
|
func (x *JobResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 JobResponse.ProtoReflect.Descriptor instead.
|
|
func (*JobResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *JobResponse) GetResultJson() []byte {
|
|
if x != nil {
|
|
return x.ResultJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// RagFetchRequest asks the guest's registered content fetcher
|
|
// (manifest.rag_content_fetcher_types) for a content item's text.
|
|
type RagFetchRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ContentType string `protobuf:"bytes,1,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
|
|
ContentId string `protobuf:"bytes,2,opt,name=content_id,json=contentId,proto3" json:"content_id,omitempty"` // UUID
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RagFetchRequest) Reset() {
|
|
*x = RagFetchRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RagFetchRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RagFetchRequest) ProtoMessage() {}
|
|
|
|
func (x *RagFetchRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 RagFetchRequest.ProtoReflect.Descriptor instead.
|
|
func (*RagFetchRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *RagFetchRequest) GetContentType() string {
|
|
if x != nil {
|
|
return x.ContentType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RagFetchRequest) GetContentId() string {
|
|
if x != nil {
|
|
return x.ContentId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// RagFetchResponse mirrors plugin.ContentFetcher's return values.
|
|
type RagFetchResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
|
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RagFetchResponse) Reset() {
|
|
*x = RagFetchResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RagFetchResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RagFetchResponse) ProtoMessage() {}
|
|
|
|
func (x *RagFetchResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_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 RagFetchResponse.ProtoReflect.Descriptor instead.
|
|
func (*RagFetchResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
func (x *RagFetchResponse) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RagFetchResponse) GetText() string {
|
|
if x != nil {
|
|
return x.Text
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// MediaHookRequest delivers one media lifecycle event
|
|
// (plugin.MediaHooksProvider).
|
|
type MediaHookRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Event:
|
|
//
|
|
// *MediaHookRequest_MediaAnalyzed
|
|
// *MediaHookRequest_ModerationDecision
|
|
Event isMediaHookRequest_Event `protobuf_oneof:"event"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MediaHookRequest) Reset() {
|
|
*x = MediaHookRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MediaHookRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MediaHookRequest) ProtoMessage() {}
|
|
|
|
func (x *MediaHookRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[14]
|
|
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 MediaHookRequest.ProtoReflect.Descriptor instead.
|
|
func (*MediaHookRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *MediaHookRequest) GetEvent() isMediaHookRequest_Event {
|
|
if x != nil {
|
|
return x.Event
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MediaHookRequest) GetMediaAnalyzed() *MediaAnalyzedEvent {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*MediaHookRequest_MediaAnalyzed); ok {
|
|
return x.MediaAnalyzed
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MediaHookRequest) GetModerationDecision() *ModerationDecisionEvent {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*MediaHookRequest_ModerationDecision); ok {
|
|
return x.ModerationDecision
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isMediaHookRequest_Event interface {
|
|
isMediaHookRequest_Event()
|
|
}
|
|
|
|
type MediaHookRequest_MediaAnalyzed struct {
|
|
MediaAnalyzed *MediaAnalyzedEvent `protobuf:"bytes,1,opt,name=media_analyzed,json=mediaAnalyzed,proto3,oneof"` // OnMediaAnalyzed
|
|
}
|
|
|
|
type MediaHookRequest_ModerationDecision struct {
|
|
ModerationDecision *ModerationDecisionEvent `protobuf:"bytes,2,opt,name=moderation_decision,json=moderationDecision,proto3,oneof"` // OnModerationDecision
|
|
}
|
|
|
|
func (*MediaHookRequest_MediaAnalyzed) isMediaHookRequest_Event() {}
|
|
|
|
func (*MediaHookRequest_ModerationDecision) isMediaHookRequest_Event() {}
|
|
|
|
type MediaHookResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MediaHookResponse) Reset() {
|
|
*x = MediaHookResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MediaHookResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MediaHookResponse) ProtoMessage() {}
|
|
|
|
func (x *MediaHookResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[15]
|
|
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 MediaHookResponse.ProtoReflect.Descriptor instead.
|
|
func (*MediaHookResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{15}
|
|
}
|
|
|
|
// MediaAnalyzedEvent mirrors plugin.MediaAnalyzedEvent (UUIDs as strings).
|
|
type MediaAnalyzedEvent struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
MediaId string `protobuf:"bytes,1,opt,name=media_id,json=mediaId,proto3" json:"media_id,omitempty"`
|
|
AnalysisId string `protobuf:"bytes,2,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"`
|
|
ContentHash string `protobuf:"bytes,3,opt,name=content_hash,json=contentHash,proto3" json:"content_hash,omitempty"`
|
|
Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
|
|
SourcePlugin string `protobuf:"bytes,5,opt,name=source_plugin,json=sourcePlugin,proto3" json:"source_plugin,omitempty"`
|
|
SourceType string `protobuf:"bytes,6,opt,name=source_type,json=sourceType,proto3" json:"source_type,omitempty"`
|
|
SourceRefId string `protobuf:"bytes,7,opt,name=source_ref_id,json=sourceRefId,proto3" json:"source_ref_id,omitempty"`
|
|
SafeAdult string `protobuf:"bytes,8,opt,name=safe_adult,json=safeAdult,proto3" json:"safe_adult,omitempty"`
|
|
SafeViolence string `protobuf:"bytes,9,opt,name=safe_violence,json=safeViolence,proto3" json:"safe_violence,omitempty"`
|
|
SafeRacy string `protobuf:"bytes,10,opt,name=safe_racy,json=safeRacy,proto3" json:"safe_racy,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) Reset() {
|
|
*x = MediaAnalyzedEvent{}
|
|
mi := &file_v1_invoke_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MediaAnalyzedEvent) ProtoMessage() {}
|
|
|
|
func (x *MediaAnalyzedEvent) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[16]
|
|
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 MediaAnalyzedEvent.ProtoReflect.Descriptor instead.
|
|
func (*MediaAnalyzedEvent) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{16}
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetMediaId() string {
|
|
if x != nil {
|
|
return x.MediaId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetAnalysisId() string {
|
|
if x != nil {
|
|
return x.AnalysisId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetContentHash() string {
|
|
if x != nil {
|
|
return x.ContentHash
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSourcePlugin() string {
|
|
if x != nil {
|
|
return x.SourcePlugin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSourceType() string {
|
|
if x != nil {
|
|
return x.SourceType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSourceRefId() string {
|
|
if x != nil {
|
|
return x.SourceRefId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSafeAdult() string {
|
|
if x != nil {
|
|
return x.SafeAdult
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSafeViolence() string {
|
|
if x != nil {
|
|
return x.SafeViolence
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MediaAnalyzedEvent) GetSafeRacy() string {
|
|
if x != nil {
|
|
return x.SafeRacy
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// ModerationDecisionEvent mirrors plugin.ModerationDecisionEvent.
|
|
type ModerationDecisionEvent struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
MediaId string `protobuf:"bytes,1,opt,name=media_id,json=mediaId,proto3" json:"media_id,omitempty"`
|
|
AnalysisId string `protobuf:"bytes,2,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"`
|
|
Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
|
|
PreviousStatus string `protobuf:"bytes,4,opt,name=previous_status,json=previousStatus,proto3" json:"previous_status,omitempty"`
|
|
SourcePlugin string `protobuf:"bytes,5,opt,name=source_plugin,json=sourcePlugin,proto3" json:"source_plugin,omitempty"`
|
|
SourceType string `protobuf:"bytes,6,opt,name=source_type,json=sourceType,proto3" json:"source_type,omitempty"`
|
|
SourceRefId string `protobuf:"bytes,7,opt,name=source_ref_id,json=sourceRefId,proto3" json:"source_ref_id,omitempty"`
|
|
ModeratedBy string `protobuf:"bytes,8,opt,name=moderated_by,json=moderatedBy,proto3" json:"moderated_by,omitempty"`
|
|
Note string `protobuf:"bytes,9,opt,name=note,proto3" json:"note,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) Reset() {
|
|
*x = ModerationDecisionEvent{}
|
|
mi := &file_v1_invoke_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ModerationDecisionEvent) ProtoMessage() {}
|
|
|
|
func (x *ModerationDecisionEvent) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[17]
|
|
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 ModerationDecisionEvent.ProtoReflect.Descriptor instead.
|
|
func (*ModerationDecisionEvent) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetMediaId() string {
|
|
if x != nil {
|
|
return x.MediaId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetAnalysisId() string {
|
|
if x != nil {
|
|
return x.AnalysisId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetPreviousStatus() string {
|
|
if x != nil {
|
|
return x.PreviousStatus
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetSourcePlugin() string {
|
|
if x != nil {
|
|
return x.SourcePlugin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetSourceType() string {
|
|
if x != nil {
|
|
return x.SourceType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetSourceRefId() string {
|
|
if x != nil {
|
|
return x.SourceRefId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetModeratedBy() string {
|
|
if x != nil {
|
|
return x.ModeratedBy
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ModerationDecisionEvent) GetNote() string {
|
|
if x != nil {
|
|
return x.Note
|
|
}
|
|
return ""
|
|
}
|
|
|
|
var File_v1_invoke_proto protoreflect.FileDescriptor
|
|
|
|
const file_v1_invoke_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x0fv1/invoke.proto\x12\x06abi.v1\x1a\x11v1/manifest.proto\"l\n" +
|
|
"\rInvokeRequest\x12 \n" +
|
|
"\x04hook\x18\x01 \x01(\x0e2\f.abi.v1.HookR\x04hook\x12\x18\n" +
|
|
"\apayload\x18\x02 \x01(\fR\apayload\x12\x1f\n" +
|
|
"\vdeadline_ms\x18\x03 \x01(\x03R\n" +
|
|
"deadlineMs\"R\n" +
|
|
"\x0eInvokeResponse\x12\x18\n" +
|
|
"\apayload\x18\x01 \x01(\fR\apayload\x12&\n" +
|
|
"\x05error\x18\x02 \x01(\v2\x10.abi.v1.AbiErrorR\x05error\"N\n" +
|
|
"\bAbiError\x12(\n" +
|
|
"\x04code\x18\x01 \x01(\x0e2\x14.abi.v1.AbiErrorCodeR\x04code\x12\x18\n" +
|
|
"\amessage\x18\x02 \x01(\tR\amessage\";\n" +
|
|
"\x0fDescribeRequest\x12(\n" +
|
|
"\x10host_abi_version\x18\x01 \x01(\rR\x0ehostAbiVersion\"F\n" +
|
|
"\x10DescribeResponse\x122\n" +
|
|
"\bmanifest\x18\x01 \x01(\v2\x16.abi.v1.PluginManifestR\bmanifest\"B\n" +
|
|
"\vLoadRequest\x123\n" +
|
|
"\vhost_config\x18\x01 \x01(\v2\x12.abi.v1.HostConfigR\n" +
|
|
"hostConfig\"D\n" +
|
|
"\n" +
|
|
"HostConfig\x12\x17\n" +
|
|
"\aapp_url\x18\x01 \x01(\tR\x06appUrl\x12\x1d\n" +
|
|
"\n" +
|
|
"media_path\x18\x02 \x01(\tR\tmediaPath\"\x0e\n" +
|
|
"\fLoadResponse\"\x0f\n" +
|
|
"\rUnloadRequest\"\x10\n" +
|
|
"\x0eUnloadResponse\"H\n" +
|
|
"\n" +
|
|
"JobRequest\x12\x19\n" +
|
|
"\bjob_type\x18\x01 \x01(\tR\ajobType\x12\x1f\n" +
|
|
"\vconfig_json\x18\x02 \x01(\fR\n" +
|
|
"configJson\".\n" +
|
|
"\vJobResponse\x12\x1f\n" +
|
|
"\vresult_json\x18\x01 \x01(\fR\n" +
|
|
"resultJson\"S\n" +
|
|
"\x0fRagFetchRequest\x12!\n" +
|
|
"\fcontent_type\x18\x01 \x01(\tR\vcontentType\x12\x1d\n" +
|
|
"\n" +
|
|
"content_id\x18\x02 \x01(\tR\tcontentId\"<\n" +
|
|
"\x10RagFetchResponse\x12\x14\n" +
|
|
"\x05title\x18\x01 \x01(\tR\x05title\x12\x12\n" +
|
|
"\x04text\x18\x02 \x01(\tR\x04text\"\xb4\x01\n" +
|
|
"\x10MediaHookRequest\x12C\n" +
|
|
"\x0emedia_analyzed\x18\x01 \x01(\v2\x1a.abi.v1.MediaAnalyzedEventH\x00R\rmediaAnalyzed\x12R\n" +
|
|
"\x13moderation_decision\x18\x02 \x01(\v2\x1f.abi.v1.ModerationDecisionEventH\x00R\x12moderationDecisionB\a\n" +
|
|
"\x05event\"\x13\n" +
|
|
"\x11MediaHookResponse\"\xd6\x02\n" +
|
|
"\x12MediaAnalyzedEvent\x12\x19\n" +
|
|
"\bmedia_id\x18\x01 \x01(\tR\amediaId\x12\x1f\n" +
|
|
"\vanalysis_id\x18\x02 \x01(\tR\n" +
|
|
"analysisId\x12!\n" +
|
|
"\fcontent_hash\x18\x03 \x01(\tR\vcontentHash\x12\x16\n" +
|
|
"\x06status\x18\x04 \x01(\tR\x06status\x12#\n" +
|
|
"\rsource_plugin\x18\x05 \x01(\tR\fsourcePlugin\x12\x1f\n" +
|
|
"\vsource_type\x18\x06 \x01(\tR\n" +
|
|
"sourceType\x12\"\n" +
|
|
"\rsource_ref_id\x18\a \x01(\tR\vsourceRefId\x12\x1d\n" +
|
|
"\n" +
|
|
"safe_adult\x18\b \x01(\tR\tsafeAdult\x12#\n" +
|
|
"\rsafe_violence\x18\t \x01(\tR\fsafeViolence\x12\x1b\n" +
|
|
"\tsafe_racy\x18\n" +
|
|
" \x01(\tR\bsafeRacy\"\xb7\x02\n" +
|
|
"\x17ModerationDecisionEvent\x12\x19\n" +
|
|
"\bmedia_id\x18\x01 \x01(\tR\amediaId\x12\x1f\n" +
|
|
"\vanalysis_id\x18\x02 \x01(\tR\n" +
|
|
"analysisId\x12\x16\n" +
|
|
"\x06status\x18\x03 \x01(\tR\x06status\x12'\n" +
|
|
"\x0fprevious_status\x18\x04 \x01(\tR\x0epreviousStatus\x12#\n" +
|
|
"\rsource_plugin\x18\x05 \x01(\tR\fsourcePlugin\x12\x1f\n" +
|
|
"\vsource_type\x18\x06 \x01(\tR\n" +
|
|
"sourceType\x12\"\n" +
|
|
"\rsource_ref_id\x18\a \x01(\tR\vsourceRefId\x12!\n" +
|
|
"\fmoderated_by\x18\b \x01(\tR\vmoderatedBy\x12\x12\n" +
|
|
"\x04note\x18\t \x01(\tR\x04note*\xf9\x01\n" +
|
|
"\x04Hook\x12\x14\n" +
|
|
"\x10HOOK_UNSPECIFIED\x10\x00\x12\x15\n" +
|
|
"\x11HOOK_RENDER_BLOCK\x10\x01\x12\x18\n" +
|
|
"\x14HOOK_RENDER_TEMPLATE\x10\x02\x12\x14\n" +
|
|
"\x10HOOK_HANDLE_HTTP\x10\x03\x12\f\n" +
|
|
"\bHOOK_JOB\x10\x04\x12\r\n" +
|
|
"\tHOOK_LOAD\x10\x05\x12\x0f\n" +
|
|
"\vHOOK_UNLOAD\x10\x06\x12\x12\n" +
|
|
"\x0eHOOK_RAG_FETCH\x10\a\x12\x13\n" +
|
|
"\x0fHOOK_MEDIA_HOOK\x10\b\x12\x11\n" +
|
|
"\rHOOK_DESCRIBE\x10\t\x12\x13\n" +
|
|
"\x0fHOOK_RENDER_TAG\x10\n" +
|
|
"\x12\x15\n" +
|
|
"\x11HOOK_APPLY_FILTER\x10\v*\xf3\x01\n" +
|
|
"\fAbiErrorCode\x12\x1e\n" +
|
|
"\x1aABI_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x1b\n" +
|
|
"\x17ABI_ERROR_CODE_INTERNAL\x10\x01\x12\x19\n" +
|
|
"\x15ABI_ERROR_CODE_DECODE\x10\x02\x12 \n" +
|
|
"\x1cABI_ERROR_CODE_UNIMPLEMENTED\x10\x03\x12$\n" +
|
|
" ABI_ERROR_CODE_DEADLINE_EXCEEDED\x10\x04\x12$\n" +
|
|
" ABI_ERROR_CODE_PERMISSION_DENIED\x10\x05\x12\x1d\n" +
|
|
"\x19ABI_ERROR_CODE_TX_EXPIRED\x10\x06B0Z.git.dev.alexdunmow.com/block/core/abi/v1;abiv1b\x06proto3"
|
|
|
|
var (
|
|
file_v1_invoke_proto_rawDescOnce sync.Once
|
|
file_v1_invoke_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_v1_invoke_proto_rawDescGZIP() []byte {
|
|
file_v1_invoke_proto_rawDescOnce.Do(func() {
|
|
file_v1_invoke_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_v1_invoke_proto_rawDesc), len(file_v1_invoke_proto_rawDesc)))
|
|
})
|
|
return file_v1_invoke_proto_rawDescData
|
|
}
|
|
|
|
var file_v1_invoke_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
|
var file_v1_invoke_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
|
|
var file_v1_invoke_proto_goTypes = []any{
|
|
(Hook)(0), // 0: abi.v1.Hook
|
|
(AbiErrorCode)(0), // 1: abi.v1.AbiErrorCode
|
|
(*InvokeRequest)(nil), // 2: abi.v1.InvokeRequest
|
|
(*InvokeResponse)(nil), // 3: abi.v1.InvokeResponse
|
|
(*AbiError)(nil), // 4: abi.v1.AbiError
|
|
(*DescribeRequest)(nil), // 5: abi.v1.DescribeRequest
|
|
(*DescribeResponse)(nil), // 6: abi.v1.DescribeResponse
|
|
(*LoadRequest)(nil), // 7: abi.v1.LoadRequest
|
|
(*HostConfig)(nil), // 8: abi.v1.HostConfig
|
|
(*LoadResponse)(nil), // 9: abi.v1.LoadResponse
|
|
(*UnloadRequest)(nil), // 10: abi.v1.UnloadRequest
|
|
(*UnloadResponse)(nil), // 11: abi.v1.UnloadResponse
|
|
(*JobRequest)(nil), // 12: abi.v1.JobRequest
|
|
(*JobResponse)(nil), // 13: abi.v1.JobResponse
|
|
(*RagFetchRequest)(nil), // 14: abi.v1.RagFetchRequest
|
|
(*RagFetchResponse)(nil), // 15: abi.v1.RagFetchResponse
|
|
(*MediaHookRequest)(nil), // 16: abi.v1.MediaHookRequest
|
|
(*MediaHookResponse)(nil), // 17: abi.v1.MediaHookResponse
|
|
(*MediaAnalyzedEvent)(nil), // 18: abi.v1.MediaAnalyzedEvent
|
|
(*ModerationDecisionEvent)(nil), // 19: abi.v1.ModerationDecisionEvent
|
|
(*PluginManifest)(nil), // 20: abi.v1.PluginManifest
|
|
}
|
|
var file_v1_invoke_proto_depIdxs = []int32{
|
|
0, // 0: abi.v1.InvokeRequest.hook:type_name -> abi.v1.Hook
|
|
4, // 1: abi.v1.InvokeResponse.error:type_name -> abi.v1.AbiError
|
|
1, // 2: abi.v1.AbiError.code:type_name -> abi.v1.AbiErrorCode
|
|
20, // 3: abi.v1.DescribeResponse.manifest:type_name -> abi.v1.PluginManifest
|
|
8, // 4: abi.v1.LoadRequest.host_config:type_name -> abi.v1.HostConfig
|
|
18, // 5: abi.v1.MediaHookRequest.media_analyzed:type_name -> abi.v1.MediaAnalyzedEvent
|
|
19, // 6: abi.v1.MediaHookRequest.moderation_decision:type_name -> abi.v1.ModerationDecisionEvent
|
|
7, // [7:7] is the sub-list for method output_type
|
|
7, // [7:7] is the sub-list for method input_type
|
|
7, // [7:7] is the sub-list for extension type_name
|
|
7, // [7:7] is the sub-list for extension extendee
|
|
0, // [0:7] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_v1_invoke_proto_init() }
|
|
func file_v1_invoke_proto_init() {
|
|
if File_v1_invoke_proto != nil {
|
|
return
|
|
}
|
|
file_v1_manifest_proto_init()
|
|
file_v1_invoke_proto_msgTypes[14].OneofWrappers = []any{
|
|
(*MediaHookRequest_MediaAnalyzed)(nil),
|
|
(*MediaHookRequest_ModerationDecision)(nil),
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_invoke_proto_rawDesc), len(file_v1_invoke_proto_rawDesc)),
|
|
NumEnums: 2,
|
|
NumMessages: 18,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_v1_invoke_proto_goTypes,
|
|
DependencyIndexes: file_v1_invoke_proto_depIdxs,
|
|
EnumInfos: file_v1_invoke_proto_enumTypes,
|
|
MessageInfos: file_v1_invoke_proto_msgTypes,
|
|
}.Build()
|
|
File_v1_invoke_proto = out.File
|
|
file_v1_invoke_proto_goTypes = nil
|
|
file_v1_invoke_proto_depIdxs = nil
|
|
}
|