Host-mediated outbound HTTP for wasm plugins: guest http.RoundTripper over the http.request capability; the host performs the request under policy. New egress package defines the host-pattern grammar (exact or multi-label wildcard, public-suffix rejected), matching, resource bounds, and the ErrDenied sentinel (ABI_ERROR_CODE_EGRESS_DENIED). plugin.mod gains first-class AllowedHosts + MaxResponseMB; manifest gains allowed_hosts=34, max_response_mb=35. CoreServices.OutboundHTTP carries the transport. Golden roundtrip + denial-mapping tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1901 lines
58 KiB
Go
1901 lines
58 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
|
|
// Execute a guest-registered AI tool handler (ai.tools.register):
|
|
// payload = AiToolCallRequest / AiToolCallResponse.
|
|
Hook_HOOK_AI_TOOL_CALL Hook = 12
|
|
// Invoke a method on a bridge service this plugin registered
|
|
// (bridge.register_service): payload = BridgeCallRequest / BridgeCallResponse.
|
|
Hook_HOOK_BRIDGE_CALL Hook = 13
|
|
// Render one directory panel section (DirectoryExtensions.PanelSections):
|
|
// payload = DirectoryPanelSectionRequest / DirectoryPanelSectionResponse.
|
|
Hook_HOOK_DIRECTORY_PANEL_SECTION Hook = 14
|
|
// Run one directory pin decorator (DirectoryExtensions.PinDecorators):
|
|
// payload = DirectoryPinDecoratorRequest / DirectoryPinDecoratorResponse.
|
|
Hook_HOOK_DIRECTORY_PIN_DECORATOR Hook = 15
|
|
)
|
|
|
|
// 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",
|
|
12: "HOOK_AI_TOOL_CALL",
|
|
13: "HOOK_BRIDGE_CALL",
|
|
14: "HOOK_DIRECTORY_PANEL_SECTION",
|
|
15: "HOOK_DIRECTORY_PIN_DECORATOR",
|
|
}
|
|
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,
|
|
"HOOK_AI_TOOL_CALL": 12,
|
|
"HOOK_BRIDGE_CALL": 13,
|
|
"HOOK_DIRECTORY_PANEL_SECTION": 14,
|
|
"HOOK_DIRECTORY_PIN_DECORATOR": 15,
|
|
}
|
|
)
|
|
|
|
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
|
|
// An http.request egress call was refused by policy (host not granted,
|
|
// grant revoked, platform-denylisted, or an off-allowlist redirect).
|
|
// message names the offending host. Mapped guest-side to
|
|
// egress.ErrDenied — deliberately distinct from a network failure
|
|
// (ADR 0023, cms repo).
|
|
AbiErrorCode_ABI_ERROR_CODE_EGRESS_DENIED AbiErrorCode = 7
|
|
)
|
|
|
|
// 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",
|
|
7: "ABI_ERROR_CODE_EGRESS_DENIED",
|
|
}
|
|
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,
|
|
"ABI_ERROR_CODE_EGRESS_DENIED": 7,
|
|
}
|
|
)
|
|
|
|
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 ""
|
|
}
|
|
|
|
// AiToolCallRequest executes the guest-side Handler of a tool the plugin
|
|
// registered via ai.tools.register (ai.ToolHandler).
|
|
type AiToolCallRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Slug string `protobuf:"bytes,1,opt,name=slug,proto3" json:"slug,omitempty"`
|
|
// JSON encoding of the params map.
|
|
ParamsJson []byte `protobuf:"bytes,2,opt,name=params_json,json=paramsJson,proto3" json:"params_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AiToolCallRequest) Reset() {
|
|
*x = AiToolCallRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AiToolCallRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AiToolCallRequest) ProtoMessage() {}
|
|
|
|
func (x *AiToolCallRequest) 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 AiToolCallRequest.ProtoReflect.Descriptor instead.
|
|
func (*AiToolCallRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
func (x *AiToolCallRequest) GetSlug() string {
|
|
if x != nil {
|
|
return x.Slug
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiToolCallRequest) GetParamsJson() []byte {
|
|
if x != nil {
|
|
return x.ParamsJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// AiToolCallResponse mirrors ai.ToolResult. A handler-level failure travels
|
|
// in error_message (a normal tool outcome the model sees); AbiError stays
|
|
// reserved for transport/decode/panic failures.
|
|
type AiToolCallResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
|
|
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AiToolCallResponse) Reset() {
|
|
*x = AiToolCallResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[18]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AiToolCallResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AiToolCallResponse) ProtoMessage() {}
|
|
|
|
func (x *AiToolCallResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[18]
|
|
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 AiToolCallResponse.ProtoReflect.Descriptor instead.
|
|
func (*AiToolCallResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{18}
|
|
}
|
|
|
|
func (x *AiToolCallResponse) GetContent() string {
|
|
if x != nil {
|
|
return x.Content
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiToolCallResponse) GetErrorMessage() string {
|
|
if x != nil {
|
|
return x.ErrorMessage
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// BridgeCallRequest asks THIS plugin (the provider) to run a method on one of
|
|
// its registered bridge services. The consumer side is the bridge.invoke
|
|
// capability; payload encoding is agreed between the two plugins (JSON by
|
|
// convention).
|
|
type BridgeCallRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
|
|
Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
|
|
Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *BridgeCallRequest) Reset() {
|
|
*x = BridgeCallRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[19]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *BridgeCallRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BridgeCallRequest) ProtoMessage() {}
|
|
|
|
func (x *BridgeCallRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[19]
|
|
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 BridgeCallRequest.ProtoReflect.Descriptor instead.
|
|
func (*BridgeCallRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{19}
|
|
}
|
|
|
|
func (x *BridgeCallRequest) GetServiceName() string {
|
|
if x != nil {
|
|
return x.ServiceName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BridgeCallRequest) GetMethod() string {
|
|
if x != nil {
|
|
return x.Method
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BridgeCallRequest) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type BridgeCallResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *BridgeCallResponse) Reset() {
|
|
*x = BridgeCallResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[20]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *BridgeCallResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BridgeCallResponse) ProtoMessage() {}
|
|
|
|
func (x *BridgeCallResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[20]
|
|
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 BridgeCallResponse.ProtoReflect.Descriptor instead.
|
|
func (*BridgeCallResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{20}
|
|
}
|
|
|
|
func (x *BridgeCallResponse) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DirectoryPanelSectionRequest renders the index-th registered panel section
|
|
// (DirectoryExtensions.PanelSections[index], counted in
|
|
// manifest.directory_extensions.panel_section_count).
|
|
type DirectoryPanelSectionRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
|
|
// JSON encoding of the row data map.
|
|
DataJson []byte `protobuf:"bytes,2,opt,name=data_json,json=dataJson,proto3" json:"data_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionRequest) Reset() {
|
|
*x = DirectoryPanelSectionRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[21]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DirectoryPanelSectionRequest) ProtoMessage() {}
|
|
|
|
func (x *DirectoryPanelSectionRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[21]
|
|
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 DirectoryPanelSectionRequest.ProtoReflect.Descriptor instead.
|
|
func (*DirectoryPanelSectionRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{21}
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionRequest) GetIndex() uint32 {
|
|
if x != nil {
|
|
return x.Index
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionRequest) GetDataJson() []byte {
|
|
if x != nil {
|
|
return x.DataJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DirectoryPanelSectionResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Html string `protobuf:"bytes,1,opt,name=html,proto3" json:"html,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionResponse) Reset() {
|
|
*x = DirectoryPanelSectionResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[22]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DirectoryPanelSectionResponse) ProtoMessage() {}
|
|
|
|
func (x *DirectoryPanelSectionResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[22]
|
|
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 DirectoryPanelSectionResponse.ProtoReflect.Descriptor instead.
|
|
func (*DirectoryPanelSectionResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{22}
|
|
}
|
|
|
|
func (x *DirectoryPanelSectionResponse) GetHtml() string {
|
|
if x != nil {
|
|
return x.Html
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// DirectoryPinDecoratorRequest runs the index-th registered pin decorator,
|
|
// which mutates the pin map in place; the mutated pin is returned.
|
|
type DirectoryPinDecoratorRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
|
|
// JSON encoding of the pin map (mutated by the decorator).
|
|
PinJson []byte `protobuf:"bytes,2,opt,name=pin_json,json=pinJson,proto3" json:"pin_json,omitempty"`
|
|
// JSON encoding of the row data map (read-only input).
|
|
DataJson []byte `protobuf:"bytes,3,opt,name=data_json,json=dataJson,proto3" json:"data_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) Reset() {
|
|
*x = DirectoryPinDecoratorRequest{}
|
|
mi := &file_v1_invoke_proto_msgTypes[23]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DirectoryPinDecoratorRequest) ProtoMessage() {}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[23]
|
|
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 DirectoryPinDecoratorRequest.ProtoReflect.Descriptor instead.
|
|
func (*DirectoryPinDecoratorRequest) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{23}
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) GetIndex() uint32 {
|
|
if x != nil {
|
|
return x.Index
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) GetPinJson() []byte {
|
|
if x != nil {
|
|
return x.PinJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorRequest) GetDataJson() []byte {
|
|
if x != nil {
|
|
return x.DataJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DirectoryPinDecoratorResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// JSON encoding of the mutated pin map.
|
|
PinJson []byte `protobuf:"bytes,1,opt,name=pin_json,json=pinJson,proto3" json:"pin_json,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorResponse) Reset() {
|
|
*x = DirectoryPinDecoratorResponse{}
|
|
mi := &file_v1_invoke_proto_msgTypes[24]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DirectoryPinDecoratorResponse) ProtoMessage() {}
|
|
|
|
func (x *DirectoryPinDecoratorResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_invoke_proto_msgTypes[24]
|
|
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 DirectoryPinDecoratorResponse.ProtoReflect.Descriptor instead.
|
|
func (*DirectoryPinDecoratorResponse) Descriptor() ([]byte, []int) {
|
|
return file_v1_invoke_proto_rawDescGZIP(), []int{24}
|
|
}
|
|
|
|
func (x *DirectoryPinDecoratorResponse) GetPinJson() []byte {
|
|
if x != nil {
|
|
return x.PinJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// 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[25]
|
|
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[25]
|
|
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{25}
|
|
}
|
|
|
|
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\"H\n" +
|
|
"\x11AiToolCallRequest\x12\x12\n" +
|
|
"\x04slug\x18\x01 \x01(\tR\x04slug\x12\x1f\n" +
|
|
"\vparams_json\x18\x02 \x01(\fR\n" +
|
|
"paramsJson\"S\n" +
|
|
"\x12AiToolCallResponse\x12\x18\n" +
|
|
"\acontent\x18\x01 \x01(\tR\acontent\x12#\n" +
|
|
"\rerror_message\x18\x02 \x01(\tR\ferrorMessage\"h\n" +
|
|
"\x11BridgeCallRequest\x12!\n" +
|
|
"\fservice_name\x18\x01 \x01(\tR\vserviceName\x12\x16\n" +
|
|
"\x06method\x18\x02 \x01(\tR\x06method\x12\x18\n" +
|
|
"\apayload\x18\x03 \x01(\fR\apayload\".\n" +
|
|
"\x12BridgeCallResponse\x12\x18\n" +
|
|
"\apayload\x18\x01 \x01(\fR\apayload\"Q\n" +
|
|
"\x1cDirectoryPanelSectionRequest\x12\x14\n" +
|
|
"\x05index\x18\x01 \x01(\rR\x05index\x12\x1b\n" +
|
|
"\tdata_json\x18\x02 \x01(\fR\bdataJson\"3\n" +
|
|
"\x1dDirectoryPanelSectionResponse\x12\x12\n" +
|
|
"\x04html\x18\x01 \x01(\tR\x04html\"l\n" +
|
|
"\x1cDirectoryPinDecoratorRequest\x12\x14\n" +
|
|
"\x05index\x18\x01 \x01(\rR\x05index\x12\x19\n" +
|
|
"\bpin_json\x18\x02 \x01(\fR\apinJson\x12\x1b\n" +
|
|
"\tdata_json\x18\x03 \x01(\fR\bdataJson\":\n" +
|
|
"\x1dDirectoryPinDecoratorResponse\x12\x19\n" +
|
|
"\bpin_json\x18\x01 \x01(\fR\apinJson\"\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*\xea\x02\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\x12\x15\n" +
|
|
"\x11HOOK_AI_TOOL_CALL\x10\f\x12\x14\n" +
|
|
"\x10HOOK_BRIDGE_CALL\x10\r\x12 \n" +
|
|
"\x1cHOOK_DIRECTORY_PANEL_SECTION\x10\x0e\x12 \n" +
|
|
"\x1cHOOK_DIRECTORY_PIN_DECORATOR\x10\x0f*\x95\x02\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\x06\x12 \n" +
|
|
"\x1cABI_ERROR_CODE_EGRESS_DENIED\x10\aB5Z3git.dev.alexdunmow.com/block/pluginsdk/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, 26)
|
|
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
|
|
(*AiToolCallRequest)(nil), // 19: abi.v1.AiToolCallRequest
|
|
(*AiToolCallResponse)(nil), // 20: abi.v1.AiToolCallResponse
|
|
(*BridgeCallRequest)(nil), // 21: abi.v1.BridgeCallRequest
|
|
(*BridgeCallResponse)(nil), // 22: abi.v1.BridgeCallResponse
|
|
(*DirectoryPanelSectionRequest)(nil), // 23: abi.v1.DirectoryPanelSectionRequest
|
|
(*DirectoryPanelSectionResponse)(nil), // 24: abi.v1.DirectoryPanelSectionResponse
|
|
(*DirectoryPinDecoratorRequest)(nil), // 25: abi.v1.DirectoryPinDecoratorRequest
|
|
(*DirectoryPinDecoratorResponse)(nil), // 26: abi.v1.DirectoryPinDecoratorResponse
|
|
(*ModerationDecisionEvent)(nil), // 27: abi.v1.ModerationDecisionEvent
|
|
(*PluginManifest)(nil), // 28: 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
|
|
28, // 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
|
|
27, // 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: 26,
|
|
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
|
|
}
|