pluginsdk/abi/v1/invoke.pb.go
Alex Dunmow 39427c40e7 feat(egress): http.request capability + allowed_hosts manifest (ADR 0023)
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>
2026-07-08 02:00:29 +08:00

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
}