// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v5.29.3
// source: proto/iop/runtime.proto

package iop

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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)
)

type RunSessionMode int32

const (
	RunSessionMode_RUN_SESSION_MODE_UNSPECIFIED       RunSessionMode = 0 // default: create if missing
	RunSessionMode_RUN_SESSION_MODE_CREATE_IF_MISSING RunSessionMode = 1
	RunSessionMode_RUN_SESSION_MODE_REQUIRE_EXISTING  RunSessionMode = 2
)

// Enum value maps for RunSessionMode.
var (
	RunSessionMode_name = map[int32]string{
		0: "RUN_SESSION_MODE_UNSPECIFIED",
		1: "RUN_SESSION_MODE_CREATE_IF_MISSING",
		2: "RUN_SESSION_MODE_REQUIRE_EXISTING",
	}
	RunSessionMode_value = map[string]int32{
		"RUN_SESSION_MODE_UNSPECIFIED":       0,
		"RUN_SESSION_MODE_CREATE_IF_MISSING": 1,
		"RUN_SESSION_MODE_REQUIRE_EXISTING":  2,
	}
)

func (x RunSessionMode) Enum() *RunSessionMode {
	p := new(RunSessionMode)
	*p = x
	return p
}

func (x RunSessionMode) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RunSessionMode) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_iop_runtime_proto_enumTypes[0].Descriptor()
}

func (RunSessionMode) Type() protoreflect.EnumType {
	return &file_proto_iop_runtime_proto_enumTypes[0]
}

func (x RunSessionMode) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RunSessionMode.Descriptor instead.
func (RunSessionMode) EnumDescriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{0}
}

type CancelAction int32

const (
	CancelAction_CANCEL_ACTION_UNSPECIFIED       CancelAction = 0 // default: cancel run only
	CancelAction_CANCEL_ACTION_CANCEL_RUN        CancelAction = 1
	CancelAction_CANCEL_ACTION_TERMINATE_SESSION CancelAction = 2
)

// Enum value maps for CancelAction.
var (
	CancelAction_name = map[int32]string{
		0: "CANCEL_ACTION_UNSPECIFIED",
		1: "CANCEL_ACTION_CANCEL_RUN",
		2: "CANCEL_ACTION_TERMINATE_SESSION",
	}
	CancelAction_value = map[string]int32{
		"CANCEL_ACTION_UNSPECIFIED":       0,
		"CANCEL_ACTION_CANCEL_RUN":        1,
		"CANCEL_ACTION_TERMINATE_SESSION": 2,
	}
)

func (x CancelAction) Enum() *CancelAction {
	p := new(CancelAction)
	*p = x
	return p
}

func (x CancelAction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CancelAction) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_iop_runtime_proto_enumTypes[1].Descriptor()
}

func (CancelAction) Type() protoreflect.EnumType {
	return &file_proto_iop_runtime_proto_enumTypes[1]
}

func (x CancelAction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CancelAction.Descriptor instead.
func (CancelAction) EnumDescriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{1}
}

type NodeCommandType int32

const (
	NodeCommandType_NODE_COMMAND_TYPE_UNSPECIFIED      NodeCommandType = 0
	NodeCommandType_NODE_COMMAND_TYPE_USAGE_STATUS     NodeCommandType = 1
	NodeCommandType_NODE_COMMAND_TYPE_CAPABILITIES     NodeCommandType = 2
	NodeCommandType_NODE_COMMAND_TYPE_SESSION_LIST     NodeCommandType = 3
	NodeCommandType_NODE_COMMAND_TYPE_TRANSPORT_STATUS NodeCommandType = 4
	NodeCommandType_NODE_COMMAND_TYPE_OLLAMA_API       NodeCommandType = 5
)

// Enum value maps for NodeCommandType.
var (
	NodeCommandType_name = map[int32]string{
		0: "NODE_COMMAND_TYPE_UNSPECIFIED",
		1: "NODE_COMMAND_TYPE_USAGE_STATUS",
		2: "NODE_COMMAND_TYPE_CAPABILITIES",
		3: "NODE_COMMAND_TYPE_SESSION_LIST",
		4: "NODE_COMMAND_TYPE_TRANSPORT_STATUS",
		5: "NODE_COMMAND_TYPE_OLLAMA_API",
	}
	NodeCommandType_value = map[string]int32{
		"NODE_COMMAND_TYPE_UNSPECIFIED":      0,
		"NODE_COMMAND_TYPE_USAGE_STATUS":     1,
		"NODE_COMMAND_TYPE_CAPABILITIES":     2,
		"NODE_COMMAND_TYPE_SESSION_LIST":     3,
		"NODE_COMMAND_TYPE_TRANSPORT_STATUS": 4,
		"NODE_COMMAND_TYPE_OLLAMA_API":       5,
	}
)

func (x NodeCommandType) Enum() *NodeCommandType {
	p := new(NodeCommandType)
	*p = x
	return p
}

func (x NodeCommandType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NodeCommandType) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_iop_runtime_proto_enumTypes[2].Descriptor()
}

func (NodeCommandType) Type() protoreflect.EnumType {
	return &file_proto_iop_runtime_proto_enumTypes[2]
}

func (x NodeCommandType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NodeCommandType.Descriptor instead.
func (NodeCommandType) EnumDescriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{2}
}

type NodeConfigRefreshStatus int32

const (
	NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_UNSPECIFIED      NodeConfigRefreshStatus = 0
	NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_APPLIED          NodeConfigRefreshStatus = 1
	NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_RESTART_REQUIRED NodeConfigRefreshStatus = 2
	NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_FAILED           NodeConfigRefreshStatus = 3
	NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_SKIPPED          NodeConfigRefreshStatus = 4
)

// Enum value maps for NodeConfigRefreshStatus.
var (
	NodeConfigRefreshStatus_name = map[int32]string{
		0: "NODE_CONFIG_REFRESH_STATUS_UNSPECIFIED",
		1: "NODE_CONFIG_REFRESH_STATUS_APPLIED",
		2: "NODE_CONFIG_REFRESH_STATUS_RESTART_REQUIRED",
		3: "NODE_CONFIG_REFRESH_STATUS_FAILED",
		4: "NODE_CONFIG_REFRESH_STATUS_SKIPPED",
	}
	NodeConfigRefreshStatus_value = map[string]int32{
		"NODE_CONFIG_REFRESH_STATUS_UNSPECIFIED":      0,
		"NODE_CONFIG_REFRESH_STATUS_APPLIED":          1,
		"NODE_CONFIG_REFRESH_STATUS_RESTART_REQUIRED": 2,
		"NODE_CONFIG_REFRESH_STATUS_FAILED":           3,
		"NODE_CONFIG_REFRESH_STATUS_SKIPPED":          4,
	}
)

func (x NodeConfigRefreshStatus) Enum() *NodeConfigRefreshStatus {
	p := new(NodeConfigRefreshStatus)
	*p = x
	return p
}

func (x NodeConfigRefreshStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NodeConfigRefreshStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_iop_runtime_proto_enumTypes[3].Descriptor()
}

func (NodeConfigRefreshStatus) Type() protoreflect.EnumType {
	return &file_proto_iop_runtime_proto_enumTypes[3]
}

func (x NodeConfigRefreshStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NodeConfigRefreshStatus.Descriptor instead.
func (NodeConfigRefreshStatus) EnumDescriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{3}
}

// RunRequest initiates an adapter execution on a node.
type RunRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RunId         string                 `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
	Adapter       string                 `protobuf:"bytes,2,opt,name=adapter,proto3" json:"adapter,omitempty"`
	Target        string                 `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	Workspace     string                 `protobuf:"bytes,4,opt,name=workspace,proto3" json:"workspace,omitempty"`
	Policy        *structpb.Struct       `protobuf:"bytes,5,opt,name=policy,proto3" json:"policy,omitempty"`
	Input         *structpb.Struct       `protobuf:"bytes,6,opt,name=input,proto3" json:"input,omitempty"`
	TimeoutSec    int32                  `protobuf:"varint,7,opt,name=timeout_sec,json=timeoutSec,proto3" json:"timeout_sec,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,8,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	SessionId     string                 `protobuf:"bytes,9,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	SessionMode   RunSessionMode         `protobuf:"varint,10,opt,name=session_mode,json=sessionMode,proto3,enum=iop.RunSessionMode" json:"session_mode,omitempty"`
	Background    bool                   `protobuf:"varint,11,opt,name=background,proto3" json:"background,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RunRequest) Reset() {
	*x = RunRequest{}
	mi := &file_proto_iop_runtime_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RunRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RunRequest) ProtoMessage() {}

func (x *RunRequest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 RunRequest.ProtoReflect.Descriptor instead.
func (*RunRequest) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{0}
}

func (x *RunRequest) GetRunId() string {
	if x != nil {
		return x.RunId
	}
	return ""
}

func (x *RunRequest) GetAdapter() string {
	if x != nil {
		return x.Adapter
	}
	return ""
}

func (x *RunRequest) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *RunRequest) GetWorkspace() string {
	if x != nil {
		return x.Workspace
	}
	return ""
}

func (x *RunRequest) GetPolicy() *structpb.Struct {
	if x != nil {
		return x.Policy
	}
	return nil
}

func (x *RunRequest) GetInput() *structpb.Struct {
	if x != nil {
		return x.Input
	}
	return nil
}

func (x *RunRequest) GetTimeoutSec() int32 {
	if x != nil {
		return x.TimeoutSec
	}
	return 0
}

func (x *RunRequest) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *RunRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *RunRequest) GetSessionMode() RunSessionMode {
	if x != nil {
		return x.SessionMode
	}
	return RunSessionMode_RUN_SESSION_MODE_UNSPECIFIED
}

func (x *RunRequest) GetBackground() bool {
	if x != nil {
		return x.Background
	}
	return false
}

// RunEvent is a streaming execution event.
type RunEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RunId         string                 `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
	Type          string                 `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // start | delta | complete | error | cancelled
	Delta         string                 `protobuf:"bytes,3,opt,name=delta,proto3" json:"delta,omitempty"`
	Message       string                 `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
	Error         string                 `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
	Usage         *Usage                 `protobuf:"bytes,6,opt,name=usage,proto3" json:"usage,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Timestamp     int64                  `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // unix nano
	SessionId     string                 `protobuf:"bytes,9,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Background    bool                   `protobuf:"varint,10,opt,name=background,proto3" json:"background,omitempty"`
	NodeId        string                 `protobuf:"bytes,11,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	NodeAlias     string                 `protobuf:"bytes,12,opt,name=node_alias,json=nodeAlias,proto3" json:"node_alias,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RunEvent) Reset() {
	*x = RunEvent{}
	mi := &file_proto_iop_runtime_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RunEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RunEvent) ProtoMessage() {}

func (x *RunEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 RunEvent.ProtoReflect.Descriptor instead.
func (*RunEvent) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{1}
}

func (x *RunEvent) GetRunId() string {
	if x != nil {
		return x.RunId
	}
	return ""
}

func (x *RunEvent) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *RunEvent) GetDelta() string {
	if x != nil {
		return x.Delta
	}
	return ""
}

func (x *RunEvent) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *RunEvent) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *RunEvent) GetUsage() *Usage {
	if x != nil {
		return x.Usage
	}
	return nil
}

func (x *RunEvent) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *RunEvent) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *RunEvent) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *RunEvent) GetBackground() bool {
	if x != nil {
		return x.Background
	}
	return false
}

func (x *RunEvent) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *RunEvent) GetNodeAlias() string {
	if x != nil {
		return x.NodeAlias
	}
	return ""
}

// EdgeNodeEvent is a general edge-node lifecycle/control event envelope.
// It is separate from RunEvent, which is reserved for adapter execution streams.
type EdgeNodeEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	EventId       string                 `protobuf:"bytes,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
	Type          string                 `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`     // node.connected | node.disconnected | edge.disconnected | ...
	Source        string                 `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` // edge | node
	NodeId        string                 `protobuf:"bytes,4,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	Alias         string                 `protobuf:"bytes,5,opt,name=alias,proto3" json:"alias,omitempty"`
	Reason        string                 `protobuf:"bytes,6,opt,name=reason,proto3" json:"reason,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Timestamp     int64                  `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // unix nano
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EdgeNodeEvent) Reset() {
	*x = EdgeNodeEvent{}
	mi := &file_proto_iop_runtime_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EdgeNodeEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EdgeNodeEvent) ProtoMessage() {}

func (x *EdgeNodeEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 EdgeNodeEvent.ProtoReflect.Descriptor instead.
func (*EdgeNodeEvent) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{2}
}

func (x *EdgeNodeEvent) GetEventId() string {
	if x != nil {
		return x.EventId
	}
	return ""
}

func (x *EdgeNodeEvent) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *EdgeNodeEvent) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *EdgeNodeEvent) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *EdgeNodeEvent) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *EdgeNodeEvent) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *EdgeNodeEvent) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *EdgeNodeEvent) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

type Usage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	InputTokens   int32                  `protobuf:"varint,1,opt,name=input_tokens,json=inputTokens,proto3" json:"input_tokens,omitempty"`
	OutputTokens  int32                  `protobuf:"varint,2,opt,name=output_tokens,json=outputTokens,proto3" json:"output_tokens,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Usage) Reset() {
	*x = Usage{}
	mi := &file_proto_iop_runtime_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Usage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Usage) ProtoMessage() {}

func (x *Usage) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 Usage.ProtoReflect.Descriptor instead.
func (*Usage) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{3}
}

func (x *Usage) GetInputTokens() int32 {
	if x != nil {
		return x.InputTokens
	}
	return 0
}

func (x *Usage) GetOutputTokens() int32 {
	if x != nil {
		return x.OutputTokens
	}
	return 0
}

// Heartbeat is sent by both sides to keep the connection alive.
type Heartbeat struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Timestamp     int64                  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Heartbeat) Reset() {
	*x = Heartbeat{}
	mi := &file_proto_iop_runtime_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Heartbeat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Heartbeat) ProtoMessage() {}

func (x *Heartbeat) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 Heartbeat.ProtoReflect.Descriptor instead.
func (*Heartbeat) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{4}
}

func (x *Heartbeat) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

// CancelRequest asks the node to cancel a running execution.
type CancelRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RunId         string                 `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
	Adapter       string                 `protobuf:"bytes,2,opt,name=adapter,proto3" json:"adapter,omitempty"`
	Target        string                 `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	SessionId     string                 `protobuf:"bytes,4,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Action        CancelAction           `protobuf:"varint,5,opt,name=action,proto3,enum=iop.CancelAction" json:"action,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelRequest) Reset() {
	*x = CancelRequest{}
	mi := &file_proto_iop_runtime_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelRequest) ProtoMessage() {}

func (x *CancelRequest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 CancelRequest.ProtoReflect.Descriptor instead.
func (*CancelRequest) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{5}
}

func (x *CancelRequest) GetRunId() string {
	if x != nil {
		return x.RunId
	}
	return ""
}

func (x *CancelRequest) GetAdapter() string {
	if x != nil {
		return x.Adapter
	}
	return ""
}

func (x *CancelRequest) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *CancelRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *CancelRequest) GetAction() CancelAction {
	if x != nil {
		return x.Action
	}
	return CancelAction_CANCEL_ACTION_UNSPECIFIED
}

type NodeCommandRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Type          NodeCommandType        `protobuf:"varint,2,opt,name=type,proto3,enum=iop.NodeCommandType" json:"type,omitempty"`
	Adapter       string                 `protobuf:"bytes,3,opt,name=adapter,proto3" json:"adapter,omitempty"`
	Target        string                 `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"`
	SessionId     string                 `protobuf:"bytes,5,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	TimeoutSec    int32                  `protobuf:"varint,6,opt,name=timeout_sec,json=timeoutSec,proto3" json:"timeout_sec,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeCommandRequest) Reset() {
	*x = NodeCommandRequest{}
	mi := &file_proto_iop_runtime_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeCommandRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeCommandRequest) ProtoMessage() {}

func (x *NodeCommandRequest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeCommandRequest.ProtoReflect.Descriptor instead.
func (*NodeCommandRequest) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{6}
}

func (x *NodeCommandRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *NodeCommandRequest) GetType() NodeCommandType {
	if x != nil {
		return x.Type
	}
	return NodeCommandType_NODE_COMMAND_TYPE_UNSPECIFIED
}

func (x *NodeCommandRequest) GetAdapter() string {
	if x != nil {
		return x.Adapter
	}
	return ""
}

func (x *NodeCommandRequest) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *NodeCommandRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *NodeCommandRequest) GetTimeoutSec() int32 {
	if x != nil {
		return x.TimeoutSec
	}
	return 0
}

func (x *NodeCommandRequest) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

type NodeCommandResponse struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	RequestId   string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Type        NodeCommandType        `protobuf:"varint,2,opt,name=type,proto3,enum=iop.NodeCommandType" json:"type,omitempty"`
	Adapter     string                 `protobuf:"bytes,3,opt,name=adapter,proto3" json:"adapter,omitempty"`
	Target      string                 `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"`
	SessionId   string                 `protobuf:"bytes,5,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	UsageStatus *AgentUsageStatus      `protobuf:"bytes,6,opt,name=usage_status,json=usageStatus,proto3" json:"usage_status,omitempty"`
	Error       string                 `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"`
	// result carries free-form key/value data for non-usage-status command types
	// (capabilities, session_list, transport_status). usage_status keeps its
	// dedicated typed payload.
	Result            map[string]string   `protobuf:"bytes,8,rep,name=result,proto3" json:"result,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	ProviderSnapshots []*ProviderSnapshot `protobuf:"bytes,9,rep,name=provider_snapshots,json=providerSnapshots,proto3" json:"provider_snapshots,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *NodeCommandResponse) Reset() {
	*x = NodeCommandResponse{}
	mi := &file_proto_iop_runtime_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeCommandResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeCommandResponse) ProtoMessage() {}

func (x *NodeCommandResponse) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeCommandResponse.ProtoReflect.Descriptor instead.
func (*NodeCommandResponse) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{7}
}

func (x *NodeCommandResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *NodeCommandResponse) GetType() NodeCommandType {
	if x != nil {
		return x.Type
	}
	return NodeCommandType_NODE_COMMAND_TYPE_UNSPECIFIED
}

func (x *NodeCommandResponse) GetAdapter() string {
	if x != nil {
		return x.Adapter
	}
	return ""
}

func (x *NodeCommandResponse) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *NodeCommandResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *NodeCommandResponse) GetUsageStatus() *AgentUsageStatus {
	if x != nil {
		return x.UsageStatus
	}
	return nil
}

func (x *NodeCommandResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *NodeCommandResponse) GetResult() map[string]string {
	if x != nil {
		return x.Result
	}
	return nil
}

func (x *NodeCommandResponse) GetProviderSnapshots() []*ProviderSnapshot {
	if x != nil {
		return x.ProviderSnapshots
	}
	return nil
}

// ProviderSnapshot is the legacy wire name for a node resource/provider status
// snapshot. category identifies whether the resource is API, CLI, or local
// inference; provider-pool dispatch is limited to catalog resources referenced
// by models[].providers.
type ProviderSnapshot struct {
	state    protoimpl.MessageState `protogen:"open.v1"`
	Adapter  string                 `protobuf:"bytes,1,opt,name=adapter,proto3" json:"adapter,omitempty"`
	Status   string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // unknown|available|unavailable
	Capacity int32                  `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"`
	InFlight int32                  `protobuf:"varint,4,opt,name=in_flight,json=inFlight,proto3" json:"in_flight,omitempty"`
	Queued   int32                  `protobuf:"varint,5,opt,name=queued,proto3" json:"queued,omitempty"`
	// Provider catalog fields (MVP).
	// id uniquely identifies this provider within its node.
	Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"`
	// type is the runtime type (e.g. "ollama", "vllm", "lemonade", "sglang", "openai_api", "cli").
	Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
	// category classifies the provider; MVP values: api, cli, local_inference.
	Category string `protobuf:"bytes,8,opt,name=category,proto3" json:"category,omitempty"`
	// served_models lists the model names this provider can actually serve.
	ServedModels []string `protobuf:"bytes,9,rep,name=served_models,json=servedModels,proto3" json:"served_models,omitempty"`
	// health is the observed provider health state (e.g. "healthy", "degraded", "unhealthy").
	Health string `protobuf:"bytes,10,opt,name=health,proto3" json:"health,omitempty"`
	// load_ratio is the computed in_flight / capacity value.  When capacity is 0
	// or unknown the provider is treated as unavailable for selection.
	LoadRatio float32 `protobuf:"fixed32,11,opt,name=load_ratio,json=loadRatio,proto3" json:"load_ratio,omitempty"`
	// lifecycle_capabilities lists coarse lifecycle capability flags (e.g.
	// "list_models", "load_model", "unload_model", "pull_model", "delete_model").
	LifecycleCapabilities []string `protobuf:"bytes,12,rep,name=lifecycle_capabilities,json=lifecycleCapabilities,proto3" json:"lifecycle_capabilities,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *ProviderSnapshot) Reset() {
	*x = ProviderSnapshot{}
	mi := &file_proto_iop_runtime_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ProviderSnapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProviderSnapshot) ProtoMessage() {}

func (x *ProviderSnapshot) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 ProviderSnapshot.ProtoReflect.Descriptor instead.
func (*ProviderSnapshot) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{8}
}

func (x *ProviderSnapshot) GetAdapter() string {
	if x != nil {
		return x.Adapter
	}
	return ""
}

func (x *ProviderSnapshot) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *ProviderSnapshot) GetCapacity() int32 {
	if x != nil {
		return x.Capacity
	}
	return 0
}

func (x *ProviderSnapshot) GetInFlight() int32 {
	if x != nil {
		return x.InFlight
	}
	return 0
}

func (x *ProviderSnapshot) GetQueued() int32 {
	if x != nil {
		return x.Queued
	}
	return 0
}

func (x *ProviderSnapshot) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ProviderSnapshot) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *ProviderSnapshot) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *ProviderSnapshot) GetServedModels() []string {
	if x != nil {
		return x.ServedModels
	}
	return nil
}

func (x *ProviderSnapshot) GetHealth() string {
	if x != nil {
		return x.Health
	}
	return ""
}

func (x *ProviderSnapshot) GetLoadRatio() float32 {
	if x != nil {
		return x.LoadRatio
	}
	return 0
}

func (x *ProviderSnapshot) GetLifecycleCapabilities() []string {
	if x != nil {
		return x.LifecycleCapabilities
	}
	return nil
}

type AgentUsageStatus struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	RawOutput       string                 `protobuf:"bytes,1,opt,name=raw_output,json=rawOutput,proto3" json:"raw_output,omitempty"`
	DailyLimit      string                 `protobuf:"bytes,2,opt,name=daily_limit,json=dailyLimit,proto3" json:"daily_limit,omitempty"`
	DailyResetTime  string                 `protobuf:"bytes,3,opt,name=daily_reset_time,json=dailyResetTime,proto3" json:"daily_reset_time,omitempty"`
	WeeklyLimit     string                 `protobuf:"bytes,4,opt,name=weekly_limit,json=weeklyLimit,proto3" json:"weekly_limit,omitempty"`
	WeeklyResetTime string                 `protobuf:"bytes,5,opt,name=weekly_reset_time,json=weeklyResetTime,proto3" json:"weekly_reset_time,omitempty"`
	Metadata        map[string]string      `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *AgentUsageStatus) Reset() {
	*x = AgentUsageStatus{}
	mi := &file_proto_iop_runtime_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentUsageStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentUsageStatus) ProtoMessage() {}

func (x *AgentUsageStatus) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 AgentUsageStatus.ProtoReflect.Descriptor instead.
func (*AgentUsageStatus) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{9}
}

func (x *AgentUsageStatus) GetRawOutput() string {
	if x != nil {
		return x.RawOutput
	}
	return ""
}

func (x *AgentUsageStatus) GetDailyLimit() string {
	if x != nil {
		return x.DailyLimit
	}
	return ""
}

func (x *AgentUsageStatus) GetDailyResetTime() string {
	if x != nil {
		return x.DailyResetTime
	}
	return ""
}

func (x *AgentUsageStatus) GetWeeklyLimit() string {
	if x != nil {
		return x.WeeklyLimit
	}
	return ""
}

func (x *AgentUsageStatus) GetWeeklyResetTime() string {
	if x != nil {
		return x.WeeklyResetTime
	}
	return ""
}

func (x *AgentUsageStatus) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// Error is returned when a request fails at the transport layer.
type Error struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Code          string                 `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	Message       string                 `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Error) Reset() {
	*x = Error{}
	mi := &file_proto_iop_runtime_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Error) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Error) ProtoMessage() {}

func (x *Error) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 Error.ProtoReflect.Descriptor instead.
func (*Error) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{10}
}

func (x *Error) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *Error) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// RegisterRequest is sent by node to edge immediately on connect.
type RegisterRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RegisterRequest) Reset() {
	*x = RegisterRequest{}
	mi := &file_proto_iop_runtime_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RegisterRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RegisterRequest) ProtoMessage() {}

func (x *RegisterRequest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 RegisterRequest.ProtoReflect.Descriptor instead.
func (*RegisterRequest) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{11}
}

func (x *RegisterRequest) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

// RegisterResponse is sent by edge to node in response to RegisterRequest.
type RegisterResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Accepted      bool                   `protobuf:"varint,1,opt,name=accepted,proto3" json:"accepted,omitempty"`
	NodeId        string                 `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	Alias         string                 `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
	Reason        string                 `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` // rejection reason
	Config        *NodeConfigPayload     `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RegisterResponse) Reset() {
	*x = RegisterResponse{}
	mi := &file_proto_iop_runtime_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RegisterResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RegisterResponse) ProtoMessage() {}

func (x *RegisterResponse) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 RegisterResponse.ProtoReflect.Descriptor instead.
func (*RegisterResponse) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{12}
}

func (x *RegisterResponse) GetAccepted() bool {
	if x != nil {
		return x.Accepted
	}
	return false
}

func (x *RegisterResponse) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *RegisterResponse) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *RegisterResponse) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *RegisterResponse) GetConfig() *NodeConfigPayload {
	if x != nil {
		return x.Config
	}
	return nil
}

// NodeConfigPayload carries all configuration edge pushes to the node.
type NodeConfigPayload struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Adapters      []*AdapterConfig       `protobuf:"bytes,1,rep,name=adapters,proto3" json:"adapters,omitempty"`
	Runtime       *NodeRuntimeConfig     `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeConfigPayload) Reset() {
	*x = NodeConfigPayload{}
	mi := &file_proto_iop_runtime_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeConfigPayload) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeConfigPayload) ProtoMessage() {}

func (x *NodeConfigPayload) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeConfigPayload.ProtoReflect.Descriptor instead.
func (*NodeConfigPayload) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{13}
}

func (x *NodeConfigPayload) GetAdapters() []*AdapterConfig {
	if x != nil {
		return x.Adapters
	}
	return nil
}

func (x *NodeConfigPayload) GetRuntime() *NodeRuntimeConfig {
	if x != nil {
		return x.Runtime
	}
	return nil
}

// AdapterConfig describes one adapter to enable on the node.
// name is the stable instance identity within a node; for single-instance
// adapters it may be empty (equivalent to the type name). When a node carries
// multiple instances of the same adapter type each must have a unique name.
type AdapterConfig struct {
	state    protoimpl.MessageState `protogen:"open.v1"`
	Type     string                 `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // "mock" | "ollama" | "vllm" | "cli" | "openai_compat"
	Enabled  bool                   `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Settings *structpb.Struct       `protobuf:"bytes,3,opt,name=settings,proto3" json:"settings,omitempty"` // legacy/compat path; new adapters use oneof
	// Types that are valid to be assigned to Config:
	//
	//	*AdapterConfig_Cli
	//	*AdapterConfig_Ollama
	//	*AdapterConfig_Vllm
	//	*AdapterConfig_Mock
	//	*AdapterConfig_OpenaiCompat
	Config        isAdapterConfig_Config `protobuf_oneof:"config"`
	Name          string                 `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"`     // stable instance identity; empty = legacy single-instance
	Target        string                 `protobuf:"bytes,9,opt,name=target,proto3" json:"target,omitempty"` // optional default target/route hint for this instance
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AdapterConfig) Reset() {
	*x = AdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdapterConfig) ProtoMessage() {}

func (x *AdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 AdapterConfig.ProtoReflect.Descriptor instead.
func (*AdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{14}
}

func (x *AdapterConfig) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *AdapterConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AdapterConfig) GetSettings() *structpb.Struct {
	if x != nil {
		return x.Settings
	}
	return nil
}

func (x *AdapterConfig) GetConfig() isAdapterConfig_Config {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *AdapterConfig) GetCli() *CLIAdapterConfig {
	if x != nil {
		if x, ok := x.Config.(*AdapterConfig_Cli); ok {
			return x.Cli
		}
	}
	return nil
}

func (x *AdapterConfig) GetOllama() *OllamaAdapterConfig {
	if x != nil {
		if x, ok := x.Config.(*AdapterConfig_Ollama); ok {
			return x.Ollama
		}
	}
	return nil
}

func (x *AdapterConfig) GetVllm() *VllmAdapterConfig {
	if x != nil {
		if x, ok := x.Config.(*AdapterConfig_Vllm); ok {
			return x.Vllm
		}
	}
	return nil
}

func (x *AdapterConfig) GetMock() *MockAdapterConfig {
	if x != nil {
		if x, ok := x.Config.(*AdapterConfig_Mock); ok {
			return x.Mock
		}
	}
	return nil
}

func (x *AdapterConfig) GetOpenaiCompat() *OpenAICompatAdapterConfig {
	if x != nil {
		if x, ok := x.Config.(*AdapterConfig_OpenaiCompat); ok {
			return x.OpenaiCompat
		}
	}
	return nil
}

func (x *AdapterConfig) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AdapterConfig) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

type isAdapterConfig_Config interface {
	isAdapterConfig_Config()
}

type AdapterConfig_Cli struct {
	Cli *CLIAdapterConfig `protobuf:"bytes,4,opt,name=cli,proto3,oneof"`
}

type AdapterConfig_Ollama struct {
	Ollama *OllamaAdapterConfig `protobuf:"bytes,5,opt,name=ollama,proto3,oneof"`
}

type AdapterConfig_Vllm struct {
	Vllm *VllmAdapterConfig `protobuf:"bytes,6,opt,name=vllm,proto3,oneof"`
}

type AdapterConfig_Mock struct {
	Mock *MockAdapterConfig `protobuf:"bytes,7,opt,name=mock,proto3,oneof"`
}

type AdapterConfig_OpenaiCompat struct {
	OpenaiCompat *OpenAICompatAdapterConfig `protobuf:"bytes,10,opt,name=openai_compat,json=openaiCompat,proto3,oneof"`
}

func (*AdapterConfig_Cli) isAdapterConfig_Config() {}

func (*AdapterConfig_Ollama) isAdapterConfig_Config() {}

func (*AdapterConfig_Vllm) isAdapterConfig_Config() {}

func (*AdapterConfig_Mock) isAdapterConfig_Config() {}

func (*AdapterConfig_OpenaiCompat) isAdapterConfig_Config() {}

type MockAdapterConfig struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MockAdapterConfig) Reset() {
	*x = MockAdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MockAdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MockAdapterConfig) ProtoMessage() {}

func (x *MockAdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 MockAdapterConfig.ProtoReflect.Descriptor instead.
func (*MockAdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{15}
}

type CLIAdapterConfig struct {
	state         protoimpl.MessageState       `protogen:"open.v1"`
	Profiles      map[string]*CLIProfileConfig `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CLIAdapterConfig) Reset() {
	*x = CLIAdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CLIAdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CLIAdapterConfig) ProtoMessage() {}

func (x *CLIAdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 CLIAdapterConfig.ProtoReflect.Descriptor instead.
func (*CLIAdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{16}
}

func (x *CLIAdapterConfig) GetProfiles() map[string]*CLIProfileConfig {
	if x != nil {
		return x.Profiles
	}
	return nil
}

type CLIProfileConfig struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	Command               string                 `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
	Args                  []string               `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
	Env                   []string               `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty"`
	Persistent            bool                   `protobuf:"varint,4,opt,name=persistent,proto3" json:"persistent,omitempty"`
	Terminal              bool                   `protobuf:"varint,5,opt,name=terminal,proto3" json:"terminal,omitempty"`
	ResponseIdleTimeoutMs int32                  `protobuf:"varint,6,opt,name=response_idle_timeout_ms,json=responseIdleTimeoutMs,proto3" json:"response_idle_timeout_ms,omitempty"`
	StartupIdleTimeoutMs  int32                  `protobuf:"varint,7,opt,name=startup_idle_timeout_ms,json=startupIdleTimeoutMs,proto3" json:"startup_idle_timeout_ms,omitempty"`
	OutputFormat          string                 `protobuf:"bytes,8,opt,name=output_format,json=outputFormat,proto3" json:"output_format,omitempty"`
	CompletionMarker      *CLICompletionMarker   `protobuf:"bytes,9,opt,name=completion_marker,json=completionMarker,proto3" json:"completion_marker,omitempty"`
	Mode                  string                 `protobuf:"bytes,10,opt,name=mode,proto3" json:"mode,omitempty"`
	ResumeArgs            []string               `protobuf:"bytes,11,rep,name=resume_args,json=resumeArgs,proto3" json:"resume_args,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *CLIProfileConfig) Reset() {
	*x = CLIProfileConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CLIProfileConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CLIProfileConfig) ProtoMessage() {}

func (x *CLIProfileConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 CLIProfileConfig.ProtoReflect.Descriptor instead.
func (*CLIProfileConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{17}
}

func (x *CLIProfileConfig) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

func (x *CLIProfileConfig) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

func (x *CLIProfileConfig) GetEnv() []string {
	if x != nil {
		return x.Env
	}
	return nil
}

func (x *CLIProfileConfig) GetPersistent() bool {
	if x != nil {
		return x.Persistent
	}
	return false
}

func (x *CLIProfileConfig) GetTerminal() bool {
	if x != nil {
		return x.Terminal
	}
	return false
}

func (x *CLIProfileConfig) GetResponseIdleTimeoutMs() int32 {
	if x != nil {
		return x.ResponseIdleTimeoutMs
	}
	return 0
}

func (x *CLIProfileConfig) GetStartupIdleTimeoutMs() int32 {
	if x != nil {
		return x.StartupIdleTimeoutMs
	}
	return 0
}

func (x *CLIProfileConfig) GetOutputFormat() string {
	if x != nil {
		return x.OutputFormat
	}
	return ""
}

func (x *CLIProfileConfig) GetCompletionMarker() *CLICompletionMarker {
	if x != nil {
		return x.CompletionMarker
	}
	return nil
}

func (x *CLIProfileConfig) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *CLIProfileConfig) GetResumeArgs() []string {
	if x != nil {
		return x.ResumeArgs
	}
	return nil
}

type CLICompletionMarker struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Line          string                 `protobuf:"bytes,1,opt,name=line,proto3" json:"line,omitempty"`
	Regex         string                 `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CLICompletionMarker) Reset() {
	*x = CLICompletionMarker{}
	mi := &file_proto_iop_runtime_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CLICompletionMarker) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CLICompletionMarker) ProtoMessage() {}

func (x *CLICompletionMarker) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 CLICompletionMarker.ProtoReflect.Descriptor instead.
func (*CLICompletionMarker) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{18}
}

func (x *CLICompletionMarker) GetLine() string {
	if x != nil {
		return x.Line
	}
	return ""
}

func (x *CLICompletionMarker) GetRegex() string {
	if x != nil {
		return x.Regex
	}
	return ""
}

type OllamaAdapterConfig struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	BaseUrl          string                 `protobuf:"bytes,1,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
	ContextSize      int32                  `protobuf:"varint,2,opt,name=context_size,json=contextSize,proto3" json:"context_size,omitempty"`
	Capacity         int32                  `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"`
	MaxQueue         int32                  `protobuf:"varint,4,opt,name=max_queue,json=maxQueue,proto3" json:"max_queue,omitempty"`
	QueueTimeoutMs   int32                  `protobuf:"varint,5,opt,name=queue_timeout_ms,json=queueTimeoutMs,proto3" json:"queue_timeout_ms,omitempty"`
	RequestTimeoutMs int32                  `protobuf:"varint,6,opt,name=request_timeout_ms,json=requestTimeoutMs,proto3" json:"request_timeout_ms,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *OllamaAdapterConfig) Reset() {
	*x = OllamaAdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OllamaAdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OllamaAdapterConfig) ProtoMessage() {}

func (x *OllamaAdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 OllamaAdapterConfig.ProtoReflect.Descriptor instead.
func (*OllamaAdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{19}
}

func (x *OllamaAdapterConfig) GetBaseUrl() string {
	if x != nil {
		return x.BaseUrl
	}
	return ""
}

func (x *OllamaAdapterConfig) GetContextSize() int32 {
	if x != nil {
		return x.ContextSize
	}
	return 0
}

func (x *OllamaAdapterConfig) GetCapacity() int32 {
	if x != nil {
		return x.Capacity
	}
	return 0
}

func (x *OllamaAdapterConfig) GetMaxQueue() int32 {
	if x != nil {
		return x.MaxQueue
	}
	return 0
}

func (x *OllamaAdapterConfig) GetQueueTimeoutMs() int32 {
	if x != nil {
		return x.QueueTimeoutMs
	}
	return 0
}

func (x *OllamaAdapterConfig) GetRequestTimeoutMs() int32 {
	if x != nil {
		return x.RequestTimeoutMs
	}
	return 0
}

type VllmAdapterConfig struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Endpoint         string                 `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	Capacity         int32                  `protobuf:"varint,2,opt,name=capacity,proto3" json:"capacity,omitempty"`
	MaxQueue         int32                  `protobuf:"varint,3,opt,name=max_queue,json=maxQueue,proto3" json:"max_queue,omitempty"`
	QueueTimeoutMs   int32                  `protobuf:"varint,4,opt,name=queue_timeout_ms,json=queueTimeoutMs,proto3" json:"queue_timeout_ms,omitempty"`
	RequestTimeoutMs int32                  `protobuf:"varint,5,opt,name=request_timeout_ms,json=requestTimeoutMs,proto3" json:"request_timeout_ms,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *VllmAdapterConfig) Reset() {
	*x = VllmAdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *VllmAdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VllmAdapterConfig) ProtoMessage() {}

func (x *VllmAdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 VllmAdapterConfig.ProtoReflect.Descriptor instead.
func (*VllmAdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{20}
}

func (x *VllmAdapterConfig) GetEndpoint() string {
	if x != nil {
		return x.Endpoint
	}
	return ""
}

func (x *VllmAdapterConfig) GetCapacity() int32 {
	if x != nil {
		return x.Capacity
	}
	return 0
}

func (x *VllmAdapterConfig) GetMaxQueue() int32 {
	if x != nil {
		return x.MaxQueue
	}
	return 0
}

func (x *VllmAdapterConfig) GetQueueTimeoutMs() int32 {
	if x != nil {
		return x.QueueTimeoutMs
	}
	return 0
}

func (x *VllmAdapterConfig) GetRequestTimeoutMs() int32 {
	if x != nil {
		return x.RequestTimeoutMs
	}
	return 0
}

type OpenAICompatAdapterConfig struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Provider         string                 `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	Endpoint         string                 `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	Headers          map[string]string      `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Capacity         int32                  `protobuf:"varint,4,opt,name=capacity,proto3" json:"capacity,omitempty"`
	MaxQueue         int32                  `protobuf:"varint,5,opt,name=max_queue,json=maxQueue,proto3" json:"max_queue,omitempty"`
	QueueTimeoutMs   int32                  `protobuf:"varint,6,opt,name=queue_timeout_ms,json=queueTimeoutMs,proto3" json:"queue_timeout_ms,omitempty"`
	RequestTimeoutMs int32                  `protobuf:"varint,7,opt,name=request_timeout_ms,json=requestTimeoutMs,proto3" json:"request_timeout_ms,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *OpenAICompatAdapterConfig) Reset() {
	*x = OpenAICompatAdapterConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OpenAICompatAdapterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OpenAICompatAdapterConfig) ProtoMessage() {}

func (x *OpenAICompatAdapterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 OpenAICompatAdapterConfig.ProtoReflect.Descriptor instead.
func (*OpenAICompatAdapterConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{21}
}

func (x *OpenAICompatAdapterConfig) GetProvider() string {
	if x != nil {
		return x.Provider
	}
	return ""
}

func (x *OpenAICompatAdapterConfig) GetEndpoint() string {
	if x != nil {
		return x.Endpoint
	}
	return ""
}

func (x *OpenAICompatAdapterConfig) GetHeaders() map[string]string {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *OpenAICompatAdapterConfig) GetCapacity() int32 {
	if x != nil {
		return x.Capacity
	}
	return 0
}

func (x *OpenAICompatAdapterConfig) GetMaxQueue() int32 {
	if x != nil {
		return x.MaxQueue
	}
	return 0
}

func (x *OpenAICompatAdapterConfig) GetQueueTimeoutMs() int32 {
	if x != nil {
		return x.QueueTimeoutMs
	}
	return 0
}

func (x *OpenAICompatAdapterConfig) GetRequestTimeoutMs() int32 {
	if x != nil {
		return x.RequestTimeoutMs
	}
	return 0
}

// NodeRuntimeConfig carries legacy node runtime metadata. Execution admission
// must not use this as a node-wide global gate; provider/resource capacity owns
// concurrency.
type NodeRuntimeConfig struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Concurrency   int32                  `protobuf:"varint,1,opt,name=concurrency,proto3" json:"concurrency,omitempty"` // legacy compatibility, 0/unset means no node-wide limit
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeRuntimeConfig) Reset() {
	*x = NodeRuntimeConfig{}
	mi := &file_proto_iop_runtime_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeRuntimeConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeRuntimeConfig) ProtoMessage() {}

func (x *NodeRuntimeConfig) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeRuntimeConfig.ProtoReflect.Descriptor instead.
func (*NodeRuntimeConfig) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{22}
}

func (x *NodeRuntimeConfig) GetConcurrency() int32 {
	if x != nil {
		return x.Concurrency
	}
	return 0
}

// NodeConfigRefreshRequest is sent by edge to a connected node to push a new config payload.
type NodeConfigRefreshRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Config        *NodeConfigPayload     `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	ChangedPaths  []string               `protobuf:"bytes,3,rep,name=changed_paths,json=changedPaths,proto3" json:"changed_paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeConfigRefreshRequest) Reset() {
	*x = NodeConfigRefreshRequest{}
	mi := &file_proto_iop_runtime_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeConfigRefreshRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeConfigRefreshRequest) ProtoMessage() {}

func (x *NodeConfigRefreshRequest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeConfigRefreshRequest.ProtoReflect.Descriptor instead.
func (*NodeConfigRefreshRequest) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{23}
}

func (x *NodeConfigRefreshRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *NodeConfigRefreshRequest) GetConfig() *NodeConfigPayload {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *NodeConfigRefreshRequest) GetChangedPaths() []string {
	if x != nil {
		return x.ChangedPaths
	}
	return nil
}

// NodeConfigRefreshResponse is returned by the node to acknowledge or report failure.
type NodeConfigRefreshResponse struct {
	state                protoimpl.MessageState  `protogen:"open.v1"`
	RequestId            string                  `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Status               NodeConfigRefreshStatus `protobuf:"varint,2,opt,name=status,proto3,enum=iop.NodeConfigRefreshStatus" json:"status,omitempty"`
	RestartRequiredPaths []string                `protobuf:"bytes,3,rep,name=restart_required_paths,json=restartRequiredPaths,proto3" json:"restart_required_paths,omitempty"`
	Error                string                  `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *NodeConfigRefreshResponse) Reset() {
	*x = NodeConfigRefreshResponse{}
	mi := &file_proto_iop_runtime_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeConfigRefreshResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeConfigRefreshResponse) ProtoMessage() {}

func (x *NodeConfigRefreshResponse) ProtoReflect() protoreflect.Message {
	mi := &file_proto_iop_runtime_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 NodeConfigRefreshResponse.ProtoReflect.Descriptor instead.
func (*NodeConfigRefreshResponse) Descriptor() ([]byte, []int) {
	return file_proto_iop_runtime_proto_rawDescGZIP(), []int{24}
}

func (x *NodeConfigRefreshResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *NodeConfigRefreshResponse) GetStatus() NodeConfigRefreshStatus {
	if x != nil {
		return x.Status
	}
	return NodeConfigRefreshStatus_NODE_CONFIG_REFRESH_STATUS_UNSPECIFIED
}

func (x *NodeConfigRefreshResponse) GetRestartRequiredPaths() []string {
	if x != nil {
		return x.RestartRequiredPaths
	}
	return nil
}

func (x *NodeConfigRefreshResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

var File_proto_iop_runtime_proto protoreflect.FileDescriptor

const file_proto_iop_runtime_proto_rawDesc = "" +
	"\n" +
	"\x17proto/iop/runtime.proto\x12\x03iop\x1a\x1cgoogle/protobuf/struct.proto\"\xe3\x03\n" +
	"\n" +
	"RunRequest\x12\x15\n" +
	"\x06run_id\x18\x01 \x01(\tR\x05runId\x12\x18\n" +
	"\aadapter\x18\x02 \x01(\tR\aadapter\x12\x16\n" +
	"\x06target\x18\x03 \x01(\tR\x06target\x12\x1c\n" +
	"\tworkspace\x18\x04 \x01(\tR\tworkspace\x12/\n" +
	"\x06policy\x18\x05 \x01(\v2\x17.google.protobuf.StructR\x06policy\x12-\n" +
	"\x05input\x18\x06 \x01(\v2\x17.google.protobuf.StructR\x05input\x12\x1f\n" +
	"\vtimeout_sec\x18\a \x01(\x05R\n" +
	"timeoutSec\x129\n" +
	"\bmetadata\x18\b \x03(\v2\x1d.iop.RunRequest.MetadataEntryR\bmetadata\x12\x1d\n" +
	"\n" +
	"session_id\x18\t \x01(\tR\tsessionId\x126\n" +
	"\fsession_mode\x18\n" +
	" \x01(\x0e2\x13.iop.RunSessionModeR\vsessionMode\x12\x1e\n" +
	"\n" +
	"background\x18\v \x01(\bR\n" +
	"background\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa8\x03\n" +
	"\bRunEvent\x12\x15\n" +
	"\x06run_id\x18\x01 \x01(\tR\x05runId\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\x12\x14\n" +
	"\x05delta\x18\x03 \x01(\tR\x05delta\x12\x18\n" +
	"\amessage\x18\x04 \x01(\tR\amessage\x12\x14\n" +
	"\x05error\x18\x05 \x01(\tR\x05error\x12 \n" +
	"\x05usage\x18\x06 \x01(\v2\n" +
	".iop.UsageR\x05usage\x127\n" +
	"\bmetadata\x18\a \x03(\v2\x1b.iop.RunEvent.MetadataEntryR\bmetadata\x12\x1c\n" +
	"\ttimestamp\x18\b \x01(\x03R\ttimestamp\x12\x1d\n" +
	"\n" +
	"session_id\x18\t \x01(\tR\tsessionId\x12\x1e\n" +
	"\n" +
	"background\x18\n" +
	" \x01(\bR\n" +
	"background\x12\x17\n" +
	"\anode_id\x18\v \x01(\tR\x06nodeId\x12\x1d\n" +
	"\n" +
	"node_alias\x18\f \x01(\tR\tnodeAlias\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x02\n" +
	"\rEdgeNodeEvent\x12\x19\n" +
	"\bevent_id\x18\x01 \x01(\tR\aeventId\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\x12\x16\n" +
	"\x06source\x18\x03 \x01(\tR\x06source\x12\x17\n" +
	"\anode_id\x18\x04 \x01(\tR\x06nodeId\x12\x14\n" +
	"\x05alias\x18\x05 \x01(\tR\x05alias\x12\x16\n" +
	"\x06reason\x18\x06 \x01(\tR\x06reason\x12<\n" +
	"\bmetadata\x18\a \x03(\v2 .iop.EdgeNodeEvent.MetadataEntryR\bmetadata\x12\x1c\n" +
	"\ttimestamp\x18\b \x01(\x03R\ttimestamp\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"O\n" +
	"\x05Usage\x12!\n" +
	"\finput_tokens\x18\x01 \x01(\x05R\vinputTokens\x12#\n" +
	"\routput_tokens\x18\x02 \x01(\x05R\foutputTokens\")\n" +
	"\tHeartbeat\x12\x1c\n" +
	"\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\"\xa2\x01\n" +
	"\rCancelRequest\x12\x15\n" +
	"\x06run_id\x18\x01 \x01(\tR\x05runId\x12\x18\n" +
	"\aadapter\x18\x02 \x01(\tR\aadapter\x12\x16\n" +
	"\x06target\x18\x03 \x01(\tR\x06target\x12\x1d\n" +
	"\n" +
	"session_id\x18\x04 \x01(\tR\tsessionId\x12)\n" +
	"\x06action\x18\x05 \x01(\x0e2\x11.iop.CancelActionR\x06action\"\xcf\x02\n" +
	"\x12NodeCommandRequest\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12(\n" +
	"\x04type\x18\x02 \x01(\x0e2\x14.iop.NodeCommandTypeR\x04type\x12\x18\n" +
	"\aadapter\x18\x03 \x01(\tR\aadapter\x12\x16\n" +
	"\x06target\x18\x04 \x01(\tR\x06target\x12\x1d\n" +
	"\n" +
	"session_id\x18\x05 \x01(\tR\tsessionId\x12\x1f\n" +
	"\vtimeout_sec\x18\x06 \x01(\x05R\n" +
	"timeoutSec\x12A\n" +
	"\bmetadata\x18\a \x03(\v2%.iop.NodeCommandRequest.MetadataEntryR\bmetadata\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xbe\x03\n" +
	"\x13NodeCommandResponse\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12(\n" +
	"\x04type\x18\x02 \x01(\x0e2\x14.iop.NodeCommandTypeR\x04type\x12\x18\n" +
	"\aadapter\x18\x03 \x01(\tR\aadapter\x12\x16\n" +
	"\x06target\x18\x04 \x01(\tR\x06target\x12\x1d\n" +
	"\n" +
	"session_id\x18\x05 \x01(\tR\tsessionId\x128\n" +
	"\fusage_status\x18\x06 \x01(\v2\x15.iop.AgentUsageStatusR\vusageStatus\x12\x14\n" +
	"\x05error\x18\a \x01(\tR\x05error\x12<\n" +
	"\x06result\x18\b \x03(\v2$.iop.NodeCommandResponse.ResultEntryR\x06result\x12D\n" +
	"\x12provider_snapshots\x18\t \x03(\v2\x15.iop.ProviderSnapshotR\x11providerSnapshots\x1a9\n" +
	"\vResultEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xe8\x02\n" +
	"\x10ProviderSnapshot\x12\x18\n" +
	"\aadapter\x18\x01 \x01(\tR\aadapter\x12\x16\n" +
	"\x06status\x18\x02 \x01(\tR\x06status\x12\x1a\n" +
	"\bcapacity\x18\x03 \x01(\x05R\bcapacity\x12\x1b\n" +
	"\tin_flight\x18\x04 \x01(\x05R\binFlight\x12\x16\n" +
	"\x06queued\x18\x05 \x01(\x05R\x06queued\x12\x0e\n" +
	"\x02id\x18\x06 \x01(\tR\x02id\x12\x12\n" +
	"\x04type\x18\a \x01(\tR\x04type\x12\x1a\n" +
	"\bcategory\x18\b \x01(\tR\bcategory\x12#\n" +
	"\rserved_models\x18\t \x03(\tR\fservedModels\x12\x16\n" +
	"\x06health\x18\n" +
	" \x01(\tR\x06health\x12\x1d\n" +
	"\n" +
	"load_ratio\x18\v \x01(\x02R\tloadRatio\x125\n" +
	"\x16lifecycle_capabilities\x18\f \x03(\tR\x15lifecycleCapabilities\"\xc9\x02\n" +
	"\x10AgentUsageStatus\x12\x1d\n" +
	"\n" +
	"raw_output\x18\x01 \x01(\tR\trawOutput\x12\x1f\n" +
	"\vdaily_limit\x18\x02 \x01(\tR\n" +
	"dailyLimit\x12(\n" +
	"\x10daily_reset_time\x18\x03 \x01(\tR\x0edailyResetTime\x12!\n" +
	"\fweekly_limit\x18\x04 \x01(\tR\vweeklyLimit\x12*\n" +
	"\x11weekly_reset_time\x18\x05 \x01(\tR\x0fweeklyResetTime\x12?\n" +
	"\bmetadata\x18\x06 \x03(\v2#.iop.AgentUsageStatus.MetadataEntryR\bmetadata\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"5\n" +
	"\x05Error\x12\x12\n" +
	"\x04code\x18\x01 \x01(\tR\x04code\x12\x18\n" +
	"\amessage\x18\x02 \x01(\tR\amessage\"'\n" +
	"\x0fRegisterRequest\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"\xa5\x01\n" +
	"\x10RegisterResponse\x12\x1a\n" +
	"\baccepted\x18\x01 \x01(\bR\baccepted\x12\x17\n" +
	"\anode_id\x18\x02 \x01(\tR\x06nodeId\x12\x14\n" +
	"\x05alias\x18\x03 \x01(\tR\x05alias\x12\x16\n" +
	"\x06reason\x18\x04 \x01(\tR\x06reason\x12.\n" +
	"\x06config\x18\x05 \x01(\v2\x16.iop.NodeConfigPayloadR\x06config\"u\n" +
	"\x11NodeConfigPayload\x12.\n" +
	"\badapters\x18\x01 \x03(\v2\x12.iop.AdapterConfigR\badapters\x120\n" +
	"\aruntime\x18\x02 \x01(\v2\x16.iop.NodeRuntimeConfigR\aruntime\"\xaa\x03\n" +
	"\rAdapterConfig\x12\x12\n" +
	"\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n" +
	"\aenabled\x18\x02 \x01(\bR\aenabled\x123\n" +
	"\bsettings\x18\x03 \x01(\v2\x17.google.protobuf.StructR\bsettings\x12)\n" +
	"\x03cli\x18\x04 \x01(\v2\x15.iop.CLIAdapterConfigH\x00R\x03cli\x122\n" +
	"\x06ollama\x18\x05 \x01(\v2\x18.iop.OllamaAdapterConfigH\x00R\x06ollama\x12,\n" +
	"\x04vllm\x18\x06 \x01(\v2\x16.iop.VllmAdapterConfigH\x00R\x04vllm\x12,\n" +
	"\x04mock\x18\a \x01(\v2\x16.iop.MockAdapterConfigH\x00R\x04mock\x12E\n" +
	"\ropenai_compat\x18\n" +
	" \x01(\v2\x1e.iop.OpenAICompatAdapterConfigH\x00R\fopenaiCompat\x12\x12\n" +
	"\x04name\x18\b \x01(\tR\x04name\x12\x16\n" +
	"\x06target\x18\t \x01(\tR\x06targetB\b\n" +
	"\x06config\"\x13\n" +
	"\x11MockAdapterConfig\"\xa7\x01\n" +
	"\x10CLIAdapterConfig\x12?\n" +
	"\bprofiles\x18\x01 \x03(\v2#.iop.CLIAdapterConfig.ProfilesEntryR\bprofiles\x1aR\n" +
	"\rProfilesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12+\n" +
	"\x05value\x18\x02 \x01(\v2\x15.iop.CLIProfileConfigR\x05value:\x028\x01\"\x9f\x03\n" +
	"\x10CLIProfileConfig\x12\x18\n" +
	"\acommand\x18\x01 \x01(\tR\acommand\x12\x12\n" +
	"\x04args\x18\x02 \x03(\tR\x04args\x12\x10\n" +
	"\x03env\x18\x03 \x03(\tR\x03env\x12\x1e\n" +
	"\n" +
	"persistent\x18\x04 \x01(\bR\n" +
	"persistent\x12\x1a\n" +
	"\bterminal\x18\x05 \x01(\bR\bterminal\x127\n" +
	"\x18response_idle_timeout_ms\x18\x06 \x01(\x05R\x15responseIdleTimeoutMs\x125\n" +
	"\x17startup_idle_timeout_ms\x18\a \x01(\x05R\x14startupIdleTimeoutMs\x12#\n" +
	"\routput_format\x18\b \x01(\tR\foutputFormat\x12E\n" +
	"\x11completion_marker\x18\t \x01(\v2\x18.iop.CLICompletionMarkerR\x10completionMarker\x12\x12\n" +
	"\x04mode\x18\n" +
	" \x01(\tR\x04mode\x12\x1f\n" +
	"\vresume_args\x18\v \x03(\tR\n" +
	"resumeArgs\"?\n" +
	"\x13CLICompletionMarker\x12\x12\n" +
	"\x04line\x18\x01 \x01(\tR\x04line\x12\x14\n" +
	"\x05regex\x18\x02 \x01(\tR\x05regex\"\xe4\x01\n" +
	"\x13OllamaAdapterConfig\x12\x19\n" +
	"\bbase_url\x18\x01 \x01(\tR\abaseUrl\x12!\n" +
	"\fcontext_size\x18\x02 \x01(\x05R\vcontextSize\x12\x1a\n" +
	"\bcapacity\x18\x03 \x01(\x05R\bcapacity\x12\x1b\n" +
	"\tmax_queue\x18\x04 \x01(\x05R\bmaxQueue\x12(\n" +
	"\x10queue_timeout_ms\x18\x05 \x01(\x05R\x0equeueTimeoutMs\x12,\n" +
	"\x12request_timeout_ms\x18\x06 \x01(\x05R\x10requestTimeoutMs\"\xc0\x01\n" +
	"\x11VllmAdapterConfig\x12\x1a\n" +
	"\bendpoint\x18\x01 \x01(\tR\bendpoint\x12\x1a\n" +
	"\bcapacity\x18\x02 \x01(\x05R\bcapacity\x12\x1b\n" +
	"\tmax_queue\x18\x03 \x01(\x05R\bmaxQueue\x12(\n" +
	"\x10queue_timeout_ms\x18\x04 \x01(\x05R\x0equeueTimeoutMs\x12,\n" +
	"\x12request_timeout_ms\x18\x05 \x01(\x05R\x10requestTimeoutMs\"\xe7\x02\n" +
	"\x19OpenAICompatAdapterConfig\x12\x1a\n" +
	"\bprovider\x18\x01 \x01(\tR\bprovider\x12\x1a\n" +
	"\bendpoint\x18\x02 \x01(\tR\bendpoint\x12E\n" +
	"\aheaders\x18\x03 \x03(\v2+.iop.OpenAICompatAdapterConfig.HeadersEntryR\aheaders\x12\x1a\n" +
	"\bcapacity\x18\x04 \x01(\x05R\bcapacity\x12\x1b\n" +
	"\tmax_queue\x18\x05 \x01(\x05R\bmaxQueue\x12(\n" +
	"\x10queue_timeout_ms\x18\x06 \x01(\x05R\x0equeueTimeoutMs\x12,\n" +
	"\x12request_timeout_ms\x18\a \x01(\x05R\x10requestTimeoutMs\x1a:\n" +
	"\fHeadersEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\";\n" +
	"\x11NodeRuntimeConfig\x12 \n" +
	"\vconcurrency\x18\x01 \x01(\x05R\vconcurrencyJ\x04\b\x02\x10\x03\"\x8e\x01\n" +
	"\x18NodeConfigRefreshRequest\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12.\n" +
	"\x06config\x18\x02 \x01(\v2\x16.iop.NodeConfigPayloadR\x06config\x12#\n" +
	"\rchanged_paths\x18\x03 \x03(\tR\fchangedPaths\"\xbc\x01\n" +
	"\x19NodeConfigRefreshResponse\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x124\n" +
	"\x06status\x18\x02 \x01(\x0e2\x1c.iop.NodeConfigRefreshStatusR\x06status\x124\n" +
	"\x16restart_required_paths\x18\x03 \x03(\tR\x14restartRequiredPaths\x12\x14\n" +
	"\x05error\x18\x04 \x01(\tR\x05error*\x81\x01\n" +
	"\x0eRunSessionMode\x12 \n" +
	"\x1cRUN_SESSION_MODE_UNSPECIFIED\x10\x00\x12&\n" +
	"\"RUN_SESSION_MODE_CREATE_IF_MISSING\x10\x01\x12%\n" +
	"!RUN_SESSION_MODE_REQUIRE_EXISTING\x10\x02*p\n" +
	"\fCancelAction\x12\x1d\n" +
	"\x19CANCEL_ACTION_UNSPECIFIED\x10\x00\x12\x1c\n" +
	"\x18CANCEL_ACTION_CANCEL_RUN\x10\x01\x12#\n" +
	"\x1fCANCEL_ACTION_TERMINATE_SESSION\x10\x02*\xea\x01\n" +
	"\x0fNodeCommandType\x12!\n" +
	"\x1dNODE_COMMAND_TYPE_UNSPECIFIED\x10\x00\x12\"\n" +
	"\x1eNODE_COMMAND_TYPE_USAGE_STATUS\x10\x01\x12\"\n" +
	"\x1eNODE_COMMAND_TYPE_CAPABILITIES\x10\x02\x12\"\n" +
	"\x1eNODE_COMMAND_TYPE_SESSION_LIST\x10\x03\x12&\n" +
	"\"NODE_COMMAND_TYPE_TRANSPORT_STATUS\x10\x04\x12 \n" +
	"\x1cNODE_COMMAND_TYPE_OLLAMA_API\x10\x05*\xed\x01\n" +
	"\x17NodeConfigRefreshStatus\x12*\n" +
	"&NODE_CONFIG_REFRESH_STATUS_UNSPECIFIED\x10\x00\x12&\n" +
	"\"NODE_CONFIG_REFRESH_STATUS_APPLIED\x10\x01\x12/\n" +
	"+NODE_CONFIG_REFRESH_STATUS_RESTART_REQUIRED\x10\x02\x12%\n" +
	"!NODE_CONFIG_REFRESH_STATUS_FAILED\x10\x03\x12&\n" +
	"\"NODE_CONFIG_REFRESH_STATUS_SKIPPED\x10\x04B\x13Z\x11iop/proto/gen/iopb\x06proto3"

var (
	file_proto_iop_runtime_proto_rawDescOnce sync.Once
	file_proto_iop_runtime_proto_rawDescData []byte
)

func file_proto_iop_runtime_proto_rawDescGZIP() []byte {
	file_proto_iop_runtime_proto_rawDescOnce.Do(func() {
		file_proto_iop_runtime_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_iop_runtime_proto_rawDesc), len(file_proto_iop_runtime_proto_rawDesc)))
	})
	return file_proto_iop_runtime_proto_rawDescData
}

var file_proto_iop_runtime_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_proto_iop_runtime_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
var file_proto_iop_runtime_proto_goTypes = []any{
	(RunSessionMode)(0),               // 0: iop.RunSessionMode
	(CancelAction)(0),                 // 1: iop.CancelAction
	(NodeCommandType)(0),              // 2: iop.NodeCommandType
	(NodeConfigRefreshStatus)(0),      // 3: iop.NodeConfigRefreshStatus
	(*RunRequest)(nil),                // 4: iop.RunRequest
	(*RunEvent)(nil),                  // 5: iop.RunEvent
	(*EdgeNodeEvent)(nil),             // 6: iop.EdgeNodeEvent
	(*Usage)(nil),                     // 7: iop.Usage
	(*Heartbeat)(nil),                 // 8: iop.Heartbeat
	(*CancelRequest)(nil),             // 9: iop.CancelRequest
	(*NodeCommandRequest)(nil),        // 10: iop.NodeCommandRequest
	(*NodeCommandResponse)(nil),       // 11: iop.NodeCommandResponse
	(*ProviderSnapshot)(nil),          // 12: iop.ProviderSnapshot
	(*AgentUsageStatus)(nil),          // 13: iop.AgentUsageStatus
	(*Error)(nil),                     // 14: iop.Error
	(*RegisterRequest)(nil),           // 15: iop.RegisterRequest
	(*RegisterResponse)(nil),          // 16: iop.RegisterResponse
	(*NodeConfigPayload)(nil),         // 17: iop.NodeConfigPayload
	(*AdapterConfig)(nil),             // 18: iop.AdapterConfig
	(*MockAdapterConfig)(nil),         // 19: iop.MockAdapterConfig
	(*CLIAdapterConfig)(nil),          // 20: iop.CLIAdapterConfig
	(*CLIProfileConfig)(nil),          // 21: iop.CLIProfileConfig
	(*CLICompletionMarker)(nil),       // 22: iop.CLICompletionMarker
	(*OllamaAdapterConfig)(nil),       // 23: iop.OllamaAdapterConfig
	(*VllmAdapterConfig)(nil),         // 24: iop.VllmAdapterConfig
	(*OpenAICompatAdapterConfig)(nil), // 25: iop.OpenAICompatAdapterConfig
	(*NodeRuntimeConfig)(nil),         // 26: iop.NodeRuntimeConfig
	(*NodeConfigRefreshRequest)(nil),  // 27: iop.NodeConfigRefreshRequest
	(*NodeConfigRefreshResponse)(nil), // 28: iop.NodeConfigRefreshResponse
	nil,                               // 29: iop.RunRequest.MetadataEntry
	nil,                               // 30: iop.RunEvent.MetadataEntry
	nil,                               // 31: iop.EdgeNodeEvent.MetadataEntry
	nil,                               // 32: iop.NodeCommandRequest.MetadataEntry
	nil,                               // 33: iop.NodeCommandResponse.ResultEntry
	nil,                               // 34: iop.AgentUsageStatus.MetadataEntry
	nil,                               // 35: iop.CLIAdapterConfig.ProfilesEntry
	nil,                               // 36: iop.OpenAICompatAdapterConfig.HeadersEntry
	(*structpb.Struct)(nil),           // 37: google.protobuf.Struct
}
var file_proto_iop_runtime_proto_depIdxs = []int32{
	37, // 0: iop.RunRequest.policy:type_name -> google.protobuf.Struct
	37, // 1: iop.RunRequest.input:type_name -> google.protobuf.Struct
	29, // 2: iop.RunRequest.metadata:type_name -> iop.RunRequest.MetadataEntry
	0,  // 3: iop.RunRequest.session_mode:type_name -> iop.RunSessionMode
	7,  // 4: iop.RunEvent.usage:type_name -> iop.Usage
	30, // 5: iop.RunEvent.metadata:type_name -> iop.RunEvent.MetadataEntry
	31, // 6: iop.EdgeNodeEvent.metadata:type_name -> iop.EdgeNodeEvent.MetadataEntry
	1,  // 7: iop.CancelRequest.action:type_name -> iop.CancelAction
	2,  // 8: iop.NodeCommandRequest.type:type_name -> iop.NodeCommandType
	32, // 9: iop.NodeCommandRequest.metadata:type_name -> iop.NodeCommandRequest.MetadataEntry
	2,  // 10: iop.NodeCommandResponse.type:type_name -> iop.NodeCommandType
	13, // 11: iop.NodeCommandResponse.usage_status:type_name -> iop.AgentUsageStatus
	33, // 12: iop.NodeCommandResponse.result:type_name -> iop.NodeCommandResponse.ResultEntry
	12, // 13: iop.NodeCommandResponse.provider_snapshots:type_name -> iop.ProviderSnapshot
	34, // 14: iop.AgentUsageStatus.metadata:type_name -> iop.AgentUsageStatus.MetadataEntry
	17, // 15: iop.RegisterResponse.config:type_name -> iop.NodeConfigPayload
	18, // 16: iop.NodeConfigPayload.adapters:type_name -> iop.AdapterConfig
	26, // 17: iop.NodeConfigPayload.runtime:type_name -> iop.NodeRuntimeConfig
	37, // 18: iop.AdapterConfig.settings:type_name -> google.protobuf.Struct
	20, // 19: iop.AdapterConfig.cli:type_name -> iop.CLIAdapterConfig
	23, // 20: iop.AdapterConfig.ollama:type_name -> iop.OllamaAdapterConfig
	24, // 21: iop.AdapterConfig.vllm:type_name -> iop.VllmAdapterConfig
	19, // 22: iop.AdapterConfig.mock:type_name -> iop.MockAdapterConfig
	25, // 23: iop.AdapterConfig.openai_compat:type_name -> iop.OpenAICompatAdapterConfig
	35, // 24: iop.CLIAdapterConfig.profiles:type_name -> iop.CLIAdapterConfig.ProfilesEntry
	22, // 25: iop.CLIProfileConfig.completion_marker:type_name -> iop.CLICompletionMarker
	36, // 26: iop.OpenAICompatAdapterConfig.headers:type_name -> iop.OpenAICompatAdapterConfig.HeadersEntry
	17, // 27: iop.NodeConfigRefreshRequest.config:type_name -> iop.NodeConfigPayload
	3,  // 28: iop.NodeConfigRefreshResponse.status:type_name -> iop.NodeConfigRefreshStatus
	21, // 29: iop.CLIAdapterConfig.ProfilesEntry.value:type_name -> iop.CLIProfileConfig
	30, // [30:30] is the sub-list for method output_type
	30, // [30:30] is the sub-list for method input_type
	30, // [30:30] is the sub-list for extension type_name
	30, // [30:30] is the sub-list for extension extendee
	0,  // [0:30] is the sub-list for field type_name
}

func init() { file_proto_iop_runtime_proto_init() }
func file_proto_iop_runtime_proto_init() {
	if File_proto_iop_runtime_proto != nil {
		return
	}
	file_proto_iop_runtime_proto_msgTypes[14].OneofWrappers = []any{
		(*AdapterConfig_Cli)(nil),
		(*AdapterConfig_Ollama)(nil),
		(*AdapterConfig_Vllm)(nil),
		(*AdapterConfig_Mock)(nil),
		(*AdapterConfig_OpenaiCompat)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_iop_runtime_proto_rawDesc), len(file_proto_iop_runtime_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   33,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_proto_iop_runtime_proto_goTypes,
		DependencyIndexes: file_proto_iop_runtime_proto_depIdxs,
		EnumInfos:         file_proto_iop_runtime_proto_enumTypes,
		MessageInfos:      file_proto_iop_runtime_proto_msgTypes,
	}.Build()
	File_proto_iop_runtime_proto = out.File
	file_proto_iop_runtime_proto_goTypes = nil
	file_proto_iop_runtime_proto_depIdxs = nil
}
