Files
enkly-ai/gen/workspace/v1/workspace.pb.go
enkly 79ce8dc4c0
Some checks failed
Go CI Pipeline / build_and_test (push) Failing after 22m0s
Init Project
2026-10-30 18:06:55 +01:00

2272 lines
78 KiB
Go

// Package workspace is the Workspace (agent sandbox / files) bounded
// context: the single shared ENKLY_WORKSPACE directory the coding agent
// reads, writes and runs commands in, and that the "Files" panel in the
// UI lets a human upload into / download from. Every path-jailing rule
// from internal/llm/sandbox.go (ResolvePath, the bash allowlist, the
// filesystem guards) is enforced here and nowhere else — no other
// service is allowed to touch the workspace volume directly.
//
// Mirrors internal/llm/tools.go (filesystem + bash tools) and
// internal/handlers/files.go / ui.go (upload, download, tree).
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: workspace/v1/workspace.proto
package workspacev1
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
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 ReadFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` // 0-based line offset
Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` // 0 = default (maxReadLines)
}
func (x *ReadFileRequest) Reset() {
*x = ReadFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReadFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReadFileRequest) ProtoMessage() {}
func (x *ReadFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReadFileRequest.ProtoReflect.Descriptor instead.
func (*ReadFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{0}
}
func (x *ReadFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *ReadFileRequest) GetOffset() int32 {
if x != nil {
return x.Offset
}
return 0
}
func (x *ReadFileRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
type ReadFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
Truncated bool `protobuf:"varint,2,opt,name=truncated,proto3" json:"truncated,omitempty"`
IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *ReadFileResponse) Reset() {
*x = ReadFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReadFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReadFileResponse) ProtoMessage() {}
func (x *ReadFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReadFileResponse.ProtoReflect.Descriptor instead.
func (*ReadFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{1}
}
func (x *ReadFileResponse) GetContent() string {
if x != nil {
return x.Content
}
return ""
}
func (x *ReadFileResponse) GetTruncated() bool {
if x != nil {
return x.Truncated
}
return false
}
func (x *ReadFileResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *ReadFileResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type WriteFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}
func (x *WriteFileRequest) Reset() {
*x = WriteFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WriteFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WriteFileRequest) ProtoMessage() {}
func (x *WriteFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WriteFileRequest.ProtoReflect.Descriptor instead.
func (*WriteFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{2}
}
func (x *WriteFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *WriteFileRequest) GetContent() string {
if x != nil {
return x.Content
}
return ""
}
type WriteFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BytesWritten int64 `protobuf:"varint,1,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"`
IsError bool `protobuf:"varint,2,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *WriteFileResponse) Reset() {
*x = WriteFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WriteFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WriteFileResponse) ProtoMessage() {}
func (x *WriteFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WriteFileResponse.ProtoReflect.Descriptor instead.
func (*WriteFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{3}
}
func (x *WriteFileResponse) GetBytesWritten() int64 {
if x != nil {
return x.BytesWritten
}
return 0
}
func (x *WriteFileResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *WriteFileResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type EditFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
OldString string `protobuf:"bytes,2,opt,name=old_string,json=oldString,proto3" json:"old_string,omitempty"`
NewString string `protobuf:"bytes,3,opt,name=new_string,json=newString,proto3" json:"new_string,omitempty"`
ReplaceAll bool `protobuf:"varint,4,opt,name=replace_all,json=replaceAll,proto3" json:"replace_all,omitempty"`
}
func (x *EditFileRequest) Reset() {
*x = EditFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EditFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EditFileRequest) ProtoMessage() {}
func (x *EditFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EditFileRequest.ProtoReflect.Descriptor instead.
func (*EditFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{4}
}
func (x *EditFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *EditFileRequest) GetOldString() string {
if x != nil {
return x.OldString
}
return ""
}
func (x *EditFileRequest) GetNewString() string {
if x != nil {
return x.NewString
}
return ""
}
func (x *EditFileRequest) GetReplaceAll() bool {
if x != nil {
return x.ReplaceAll
}
return false
}
type EditFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DiffPreview string `protobuf:"bytes,1,opt,name=diff_preview,json=diffPreview,proto3" json:"diff_preview,omitempty"`
Occurrences int32 `protobuf:"varint,2,opt,name=occurrences,proto3" json:"occurrences,omitempty"`
IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *EditFileResponse) Reset() {
*x = EditFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EditFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EditFileResponse) ProtoMessage() {}
func (x *EditFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EditFileResponse.ProtoReflect.Descriptor instead.
func (*EditFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{5}
}
func (x *EditFileResponse) GetDiffPreview() string {
if x != nil {
return x.DiffPreview
}
return ""
}
func (x *EditFileResponse) GetOccurrences() int32 {
if x != nil {
return x.Occurrences
}
return 0
}
func (x *EditFileResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *EditFileResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type TextEdit struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OldString string `protobuf:"bytes,1,opt,name=old_string,json=oldString,proto3" json:"old_string,omitempty"`
NewString string `protobuf:"bytes,2,opt,name=new_string,json=newString,proto3" json:"new_string,omitempty"`
ReplaceAll bool `protobuf:"varint,3,opt,name=replace_all,json=replaceAll,proto3" json:"replace_all,omitempty"`
}
func (x *TextEdit) Reset() {
*x = TextEdit{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TextEdit) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TextEdit) ProtoMessage() {}
func (x *TextEdit) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TextEdit.ProtoReflect.Descriptor instead.
func (*TextEdit) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{6}
}
func (x *TextEdit) GetOldString() string {
if x != nil {
return x.OldString
}
return ""
}
func (x *TextEdit) GetNewString() string {
if x != nil {
return x.NewString
}
return ""
}
func (x *TextEdit) GetReplaceAll() bool {
if x != nil {
return x.ReplaceAll
}
return false
}
type MultiEditFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Edits []*TextEdit `protobuf:"bytes,2,rep,name=edits,proto3" json:"edits,omitempty"`
}
func (x *MultiEditFileRequest) Reset() {
*x = MultiEditFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MultiEditFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MultiEditFileRequest) ProtoMessage() {}
func (x *MultiEditFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MultiEditFileRequest.ProtoReflect.Descriptor instead.
func (*MultiEditFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{7}
}
func (x *MultiEditFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *MultiEditFileRequest) GetEdits() []*TextEdit {
if x != nil {
return x.Edits
}
return nil
}
type MultiEditFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DiffPreview string `protobuf:"bytes,1,opt,name=diff_preview,json=diffPreview,proto3" json:"diff_preview,omitempty"`
IsError bool `protobuf:"varint,2,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *MultiEditFileResponse) Reset() {
*x = MultiEditFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MultiEditFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MultiEditFileResponse) ProtoMessage() {}
func (x *MultiEditFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MultiEditFileResponse.ProtoReflect.Descriptor instead.
func (*MultiEditFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{8}
}
func (x *MultiEditFileResponse) GetDiffPreview() string {
if x != nil {
return x.DiffPreview
}
return ""
}
func (x *MultiEditFileResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *MultiEditFileResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type ListDirectoryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *ListDirectoryRequest) Reset() {
*x = ListDirectoryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDirectoryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDirectoryRequest) ProtoMessage() {}
func (x *ListDirectoryRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListDirectoryRequest.ProtoReflect.Descriptor instead.
func (*ListDirectoryRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{9}
}
func (x *ListDirectoryRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type ListDirectoryResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Listing string `protobuf:"bytes,1,opt,name=listing,proto3" json:"listing,omitempty"` // pre-rendered, matching the monolith's tool output format
IsError bool `protobuf:"varint,2,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *ListDirectoryResponse) Reset() {
*x = ListDirectoryResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDirectoryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDirectoryResponse) ProtoMessage() {}
func (x *ListDirectoryResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListDirectoryResponse.ProtoReflect.Descriptor instead.
func (*ListDirectoryResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{10}
}
func (x *ListDirectoryResponse) GetListing() string {
if x != nil {
return x.Listing
}
return ""
}
func (x *ListDirectoryResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *ListDirectoryResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type GlobSearchRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *GlobSearchRequest) Reset() {
*x = GlobSearchRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GlobSearchRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GlobSearchRequest) ProtoMessage() {}
func (x *GlobSearchRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GlobSearchRequest.ProtoReflect.Descriptor instead.
func (*GlobSearchRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{11}
}
func (x *GlobSearchRequest) GetPattern() string {
if x != nil {
return x.Pattern
}
return ""
}
func (x *GlobSearchRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type GlobSearchResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Pre-rendered exactly like every other tool's text output (a
// newline-separated path list, "no files matched that pattern", or a
// truncation notice) — deliberately NOT a repeated string, since that
// would require guessing which lines are paths vs. a status message,
// a lossy transformation the original tool output never needed.
Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
IsError bool `protobuf:"varint,2,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *GlobSearchResponse) Reset() {
*x = GlobSearchResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GlobSearchResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GlobSearchResponse) ProtoMessage() {}
func (x *GlobSearchResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GlobSearchResponse.ProtoReflect.Descriptor instead.
func (*GlobSearchResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{12}
}
func (x *GlobSearchResponse) GetOutput() string {
if x != nil {
return x.Output
}
return ""
}
func (x *GlobSearchResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *GlobSearchResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type GrepRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
Glob string `protobuf:"bytes,3,opt,name=glob,proto3" json:"glob,omitempty"`
CaseInsensitive bool `protobuf:"varint,4,opt,name=case_insensitive,json=caseInsensitive,proto3" json:"case_insensitive,omitempty"`
}
func (x *GrepRequest) Reset() {
*x = GrepRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GrepRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GrepRequest) ProtoMessage() {}
func (x *GrepRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GrepRequest.ProtoReflect.Descriptor instead.
func (*GrepRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{13}
}
func (x *GrepRequest) GetPattern() string {
if x != nil {
return x.Pattern
}
return ""
}
func (x *GrepRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *GrepRequest) GetGlob() string {
if x != nil {
return x.Glob
}
return ""
}
func (x *GrepRequest) GetCaseInsensitive() bool {
if x != nil {
return x.CaseInsensitive
}
return false
}
type GrepResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
IsError bool `protobuf:"varint,2,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *GrepResponse) Reset() {
*x = GrepResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GrepResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GrepResponse) ProtoMessage() {}
func (x *GrepResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GrepResponse.ProtoReflect.Descriptor instead.
func (*GrepResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{14}
}
func (x *GrepResponse) GetOutput() string {
if x != nil {
return x.Output
}
return ""
}
func (x *GrepResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *GrepResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type RunBashCommandRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
TimeoutSeconds int32 `protobuf:"varint,2,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` // 0 = service default
}
func (x *RunBashCommandRequest) Reset() {
*x = RunBashCommandRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RunBashCommandRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RunBashCommandRequest) ProtoMessage() {}
func (x *RunBashCommandRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RunBashCommandRequest.ProtoReflect.Descriptor instead.
func (*RunBashCommandRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{15}
}
func (x *RunBashCommandRequest) GetCommand() string {
if x != nil {
return x.Command
}
return ""
}
func (x *RunBashCommandRequest) GetTimeoutSeconds() int32 {
if x != nil {
return x.TimeoutSeconds
}
return 0
}
type RunBashCommandResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
ExitCode int32 `protobuf:"varint,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *RunBashCommandResponse) Reset() {
*x = RunBashCommandResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RunBashCommandResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RunBashCommandResponse) ProtoMessage() {}
func (x *RunBashCommandResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RunBashCommandResponse.ProtoReflect.Descriptor instead.
func (*RunBashCommandResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{16}
}
func (x *RunBashCommandResponse) GetOutput() string {
if x != nil {
return x.Output
}
return ""
}
func (x *RunBashCommandResponse) GetExitCode() int32 {
if x != nil {
return x.ExitCode
}
return 0
}
func (x *RunBashCommandResponse) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *RunBashCommandResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
type UploadFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // destination relative path
Content []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}
func (x *UploadFileRequest) Reset() {
*x = UploadFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UploadFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UploadFileRequest) ProtoMessage() {}
func (x *UploadFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UploadFileRequest.ProtoReflect.Descriptor instead.
func (*UploadFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{17}
}
func (x *UploadFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *UploadFileRequest) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
type UploadFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BytesWritten int64 `protobuf:"varint,1,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"`
}
func (x *UploadFileResponse) Reset() {
*x = UploadFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UploadFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UploadFileResponse) ProtoMessage() {}
func (x *UploadFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UploadFileResponse.ProtoReflect.Descriptor instead.
func (*UploadFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{18}
}
func (x *UploadFileResponse) GetBytesWritten() int64 {
if x != nil {
return x.BytesWritten
}
return 0
}
type DownloadFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *DownloadFileRequest) Reset() {
*x = DownloadFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DownloadFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DownloadFileRequest) ProtoMessage() {}
func (x *DownloadFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DownloadFileRequest.ProtoReflect.Descriptor instead.
func (*DownloadFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{19}
}
func (x *DownloadFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type DownloadFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"`
}
func (x *DownloadFileResponse) Reset() {
*x = DownloadFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DownloadFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DownloadFileResponse) ProtoMessage() {}
func (x *DownloadFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DownloadFileResponse.ProtoReflect.Descriptor instead.
func (*DownloadFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{20}
}
func (x *DownloadFileResponse) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
func (x *DownloadFileResponse) GetFilename() string {
if x != nil {
return x.Filename
}
return ""
}
type TreeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // "" = workspace root
// one_level: list only the immediate children of path (both files
// and directories, directories included as entries in their own
// right) instead of recursing — backs the gateway's lazy-expanding
// file explorer panel (internal/handlers/ui.go's FileTree), where
// each folder click fetches just that folder. false (the default)
// recurses fully and returns only files, for the flat "Workspace
// files" upload/download panel (internal/handlers/files.go).
OneLevel bool `protobuf:"varint,2,opt,name=one_level,json=oneLevel,proto3" json:"one_level,omitempty"`
}
func (x *TreeRequest) Reset() {
*x = TreeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TreeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TreeRequest) ProtoMessage() {}
func (x *TreeRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TreeRequest.ProtoReflect.Descriptor instead.
func (*TreeRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{21}
}
func (x *TreeRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *TreeRequest) GetOneLevel() bool {
if x != nil {
return x.OneLevel
}
return false
}
type TreeNode struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
RelPath string `protobuf:"bytes,2,opt,name=rel_path,json=relPath,proto3" json:"rel_path,omitempty"`
IsDir bool `protobuf:"varint,3,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"`
Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
ModifiedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"`
}
func (x *TreeNode) Reset() {
*x = TreeNode{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TreeNode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TreeNode) ProtoMessage() {}
func (x *TreeNode) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TreeNode.ProtoReflect.Descriptor instead.
func (*TreeNode) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{22}
}
func (x *TreeNode) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TreeNode) GetRelPath() string {
if x != nil {
return x.RelPath
}
return ""
}
func (x *TreeNode) GetIsDir() bool {
if x != nil {
return x.IsDir
}
return false
}
func (x *TreeNode) GetSize() int64 {
if x != nil {
return x.Size
}
return 0
}
func (x *TreeNode) GetModifiedAt() *timestamppb.Timestamp {
if x != nil {
return x.ModifiedAt
}
return nil
}
type TreeResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Nodes []*TreeNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
}
func (x *TreeResponse) Reset() {
*x = TreeResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TreeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TreeResponse) ProtoMessage() {}
func (x *TreeResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TreeResponse.ProtoReflect.Descriptor instead.
func (*TreeResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{23}
}
func (x *TreeResponse) GetNodes() []*TreeNode {
if x != nil {
return x.Nodes
}
return nil
}
type StatFileRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *StatFileRequest) Reset() {
*x = StatFileRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatFileRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatFileRequest) ProtoMessage() {}
func (x *StatFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatFileRequest.ProtoReflect.Descriptor instead.
func (*StatFileRequest) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{24}
}
func (x *StatFileRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type StatFileResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"`
IsDir bool `protobuf:"varint,2,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"`
Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
ModifiedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"`
}
func (x *StatFileResponse) Reset() {
*x = StatFileResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_workspace_v1_workspace_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatFileResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatFileResponse) ProtoMessage() {}
func (x *StatFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_workspace_v1_workspace_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatFileResponse.ProtoReflect.Descriptor instead.
func (*StatFileResponse) Descriptor() ([]byte, []int) {
return file_workspace_v1_workspace_proto_rawDescGZIP(), []int{25}
}
func (x *StatFileResponse) GetExists() bool {
if x != nil {
return x.Exists
}
return false
}
func (x *StatFileResponse) GetIsDir() bool {
if x != nil {
return x.IsDir
}
return false
}
func (x *StatFileResponse) GetSize() int64 {
if x != nil {
return x.Size
}
return 0
}
func (x *StatFileResponse) GetModifiedAt() *timestamppb.Timestamp {
if x != nil {
return x.ModifiedAt
}
return nil
}
var File_workspace_v1_workspace_proto protoreflect.FileDescriptor
var file_workspace_v1_workspace_proto_rawDesc = []byte{
0x0a, 0x1c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x77,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12,
0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e,
0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0x53, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x61,
0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a,
0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x63,
0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x72, 0x75, 0x6e,
0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69,
0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a,
0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x11, 0x57, 0x72, 0x69, 0x74, 0x65,
0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d,
0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65,
0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6c, 0x64,
0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f,
0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f,
0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65,
0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61,
0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65,
0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x97, 0x01, 0x0a, 0x10, 0x45, 0x64, 0x69,
0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a,
0x0c, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77,
0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a,
0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x22, 0x69, 0x0a, 0x08, 0x54, 0x65, 0x78, 0x74, 0x45, 0x64, 0x69, 0x74, 0x12, 0x1d,
0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a,
0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b,
0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x5e, 0x0a,
0x14, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x64, 0x69,
0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79,
0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
0x78, 0x74, 0x45, 0x64, 0x69, 0x74, 0x52, 0x05, 0x65, 0x64, 0x69, 0x74, 0x73, 0x22, 0x7a, 0x0a,
0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x70,
0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69,
0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x4c, 0x69, 0x73,
0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x71, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72,
0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x47, 0x6c, 0x6f, 0x62,
0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x6c, 0x0a, 0x12, 0x47,
0x6c, 0x6f, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7a, 0x0a, 0x0b, 0x47, 0x72, 0x65,
0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74,
0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65,
0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6c, 0x6f, 0x62, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x6c, 0x6f, 0x62, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61,
0x73, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x6e, 0x73,
0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x66, 0x0a, 0x0c, 0x47, 0x72, 0x65, 0x70, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a,
0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5a, 0x0a,
0x15, 0x52, 0x75, 0x6e, 0x42, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f,
0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x16, 0x52, 0x75,
0x6e, 0x42, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x09,
0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x55, 0x70, 0x6c,
0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x39, 0x0a, 0x12,
0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74,
0x74, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73,
0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x13, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
0x74, 0x68, 0x22, 0x4c, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69,
0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65,
0x22, 0x3e, 0x0a, 0x0b, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x6e, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x6e, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x22, 0xa1, 0x01, 0x0a, 0x08, 0x54, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06,
0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73,
0x44, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66,
0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
0x65, 0x64, 0x41, 0x74, 0x22, 0x42, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64,
0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x25, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74,
0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70,
0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22,
0x92, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06,
0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73,
0x44, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66,
0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
0x65, 0x64, 0x41, 0x74, 0x32, 0xd9, 0x08, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x52, 0x65, 0x61,
0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46,
0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6e, 0x6b,
0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x58, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x2e,
0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e,
0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69,
0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x45, 0x64,
0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74,
0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6e,
0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31,
0x2e, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x64, 0x0a, 0x0d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69,
0x6c, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x69,
0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65,
0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76,
0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44,
0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79,
0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a,
0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x65, 0x6e,
0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31,
0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x53, 0x65, 0x61, 0x72,
0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x47, 0x72,
0x65, 0x70, 0x12, 0x1f, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x65, 0x70, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x65, 0x70, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x42, 0x61, 0x73, 0x68,
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e,
0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e,
0x42, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x61, 0x73, 0x68, 0x43,
0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b,
0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x65,
0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76,
0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46,
0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0c, 0x44,
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x65, 0x6e,
0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31,
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49,
0x0a, 0x04, 0x54, 0x72, 0x65, 0x65, 0x12, 0x1f, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x65, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e,
0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x65,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x53, 0x74, 0x61,
0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2e, 0x77, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46,
0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6e, 0x6b,
0x6c, 0x79, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x42, 0x24, 0x5a, 0x22, 0x65, 0x6e, 0x6b, 0x6c, 0x79, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x77, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_workspace_v1_workspace_proto_rawDescOnce sync.Once
file_workspace_v1_workspace_proto_rawDescData = file_workspace_v1_workspace_proto_rawDesc
)
func file_workspace_v1_workspace_proto_rawDescGZIP() []byte {
file_workspace_v1_workspace_proto_rawDescOnce.Do(func() {
file_workspace_v1_workspace_proto_rawDescData = protoimpl.X.CompressGZIP(file_workspace_v1_workspace_proto_rawDescData)
})
return file_workspace_v1_workspace_proto_rawDescData
}
var file_workspace_v1_workspace_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_workspace_v1_workspace_proto_goTypes = []any{
(*ReadFileRequest)(nil), // 0: enkly.workspace.v1.ReadFileRequest
(*ReadFileResponse)(nil), // 1: enkly.workspace.v1.ReadFileResponse
(*WriteFileRequest)(nil), // 2: enkly.workspace.v1.WriteFileRequest
(*WriteFileResponse)(nil), // 3: enkly.workspace.v1.WriteFileResponse
(*EditFileRequest)(nil), // 4: enkly.workspace.v1.EditFileRequest
(*EditFileResponse)(nil), // 5: enkly.workspace.v1.EditFileResponse
(*TextEdit)(nil), // 6: enkly.workspace.v1.TextEdit
(*MultiEditFileRequest)(nil), // 7: enkly.workspace.v1.MultiEditFileRequest
(*MultiEditFileResponse)(nil), // 8: enkly.workspace.v1.MultiEditFileResponse
(*ListDirectoryRequest)(nil), // 9: enkly.workspace.v1.ListDirectoryRequest
(*ListDirectoryResponse)(nil), // 10: enkly.workspace.v1.ListDirectoryResponse
(*GlobSearchRequest)(nil), // 11: enkly.workspace.v1.GlobSearchRequest
(*GlobSearchResponse)(nil), // 12: enkly.workspace.v1.GlobSearchResponse
(*GrepRequest)(nil), // 13: enkly.workspace.v1.GrepRequest
(*GrepResponse)(nil), // 14: enkly.workspace.v1.GrepResponse
(*RunBashCommandRequest)(nil), // 15: enkly.workspace.v1.RunBashCommandRequest
(*RunBashCommandResponse)(nil), // 16: enkly.workspace.v1.RunBashCommandResponse
(*UploadFileRequest)(nil), // 17: enkly.workspace.v1.UploadFileRequest
(*UploadFileResponse)(nil), // 18: enkly.workspace.v1.UploadFileResponse
(*DownloadFileRequest)(nil), // 19: enkly.workspace.v1.DownloadFileRequest
(*DownloadFileResponse)(nil), // 20: enkly.workspace.v1.DownloadFileResponse
(*TreeRequest)(nil), // 21: enkly.workspace.v1.TreeRequest
(*TreeNode)(nil), // 22: enkly.workspace.v1.TreeNode
(*TreeResponse)(nil), // 23: enkly.workspace.v1.TreeResponse
(*StatFileRequest)(nil), // 24: enkly.workspace.v1.StatFileRequest
(*StatFileResponse)(nil), // 25: enkly.workspace.v1.StatFileResponse
(*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp
}
var file_workspace_v1_workspace_proto_depIdxs = []int32{
6, // 0: enkly.workspace.v1.MultiEditFileRequest.edits:type_name -> enkly.workspace.v1.TextEdit
26, // 1: enkly.workspace.v1.TreeNode.modified_at:type_name -> google.protobuf.Timestamp
22, // 2: enkly.workspace.v1.TreeResponse.nodes:type_name -> enkly.workspace.v1.TreeNode
26, // 3: enkly.workspace.v1.StatFileResponse.modified_at:type_name -> google.protobuf.Timestamp
0, // 4: enkly.workspace.v1.WorkspaceService.ReadFile:input_type -> enkly.workspace.v1.ReadFileRequest
2, // 5: enkly.workspace.v1.WorkspaceService.WriteFile:input_type -> enkly.workspace.v1.WriteFileRequest
4, // 6: enkly.workspace.v1.WorkspaceService.EditFile:input_type -> enkly.workspace.v1.EditFileRequest
7, // 7: enkly.workspace.v1.WorkspaceService.MultiEditFile:input_type -> enkly.workspace.v1.MultiEditFileRequest
9, // 8: enkly.workspace.v1.WorkspaceService.ListDirectory:input_type -> enkly.workspace.v1.ListDirectoryRequest
11, // 9: enkly.workspace.v1.WorkspaceService.GlobSearch:input_type -> enkly.workspace.v1.GlobSearchRequest
13, // 10: enkly.workspace.v1.WorkspaceService.Grep:input_type -> enkly.workspace.v1.GrepRequest
15, // 11: enkly.workspace.v1.WorkspaceService.RunBashCommand:input_type -> enkly.workspace.v1.RunBashCommandRequest
17, // 12: enkly.workspace.v1.WorkspaceService.UploadFile:input_type -> enkly.workspace.v1.UploadFileRequest
19, // 13: enkly.workspace.v1.WorkspaceService.DownloadFile:input_type -> enkly.workspace.v1.DownloadFileRequest
21, // 14: enkly.workspace.v1.WorkspaceService.Tree:input_type -> enkly.workspace.v1.TreeRequest
24, // 15: enkly.workspace.v1.WorkspaceService.StatFile:input_type -> enkly.workspace.v1.StatFileRequest
1, // 16: enkly.workspace.v1.WorkspaceService.ReadFile:output_type -> enkly.workspace.v1.ReadFileResponse
3, // 17: enkly.workspace.v1.WorkspaceService.WriteFile:output_type -> enkly.workspace.v1.WriteFileResponse
5, // 18: enkly.workspace.v1.WorkspaceService.EditFile:output_type -> enkly.workspace.v1.EditFileResponse
8, // 19: enkly.workspace.v1.WorkspaceService.MultiEditFile:output_type -> enkly.workspace.v1.MultiEditFileResponse
10, // 20: enkly.workspace.v1.WorkspaceService.ListDirectory:output_type -> enkly.workspace.v1.ListDirectoryResponse
12, // 21: enkly.workspace.v1.WorkspaceService.GlobSearch:output_type -> enkly.workspace.v1.GlobSearchResponse
14, // 22: enkly.workspace.v1.WorkspaceService.Grep:output_type -> enkly.workspace.v1.GrepResponse
16, // 23: enkly.workspace.v1.WorkspaceService.RunBashCommand:output_type -> enkly.workspace.v1.RunBashCommandResponse
18, // 24: enkly.workspace.v1.WorkspaceService.UploadFile:output_type -> enkly.workspace.v1.UploadFileResponse
20, // 25: enkly.workspace.v1.WorkspaceService.DownloadFile:output_type -> enkly.workspace.v1.DownloadFileResponse
23, // 26: enkly.workspace.v1.WorkspaceService.Tree:output_type -> enkly.workspace.v1.TreeResponse
25, // 27: enkly.workspace.v1.WorkspaceService.StatFile:output_type -> enkly.workspace.v1.StatFileResponse
16, // [16:28] is the sub-list for method output_type
4, // [4:16] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_workspace_v1_workspace_proto_init() }
func file_workspace_v1_workspace_proto_init() {
if File_workspace_v1_workspace_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_workspace_v1_workspace_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*ReadFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*ReadFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*WriteFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*WriteFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*EditFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*EditFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*TextEdit); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*MultiEditFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*MultiEditFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*ListDirectoryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[10].Exporter = func(v any, i int) any {
switch v := v.(*ListDirectoryResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[11].Exporter = func(v any, i int) any {
switch v := v.(*GlobSearchRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[12].Exporter = func(v any, i int) any {
switch v := v.(*GlobSearchResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[13].Exporter = func(v any, i int) any {
switch v := v.(*GrepRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[14].Exporter = func(v any, i int) any {
switch v := v.(*GrepResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[15].Exporter = func(v any, i int) any {
switch v := v.(*RunBashCommandRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[16].Exporter = func(v any, i int) any {
switch v := v.(*RunBashCommandResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[17].Exporter = func(v any, i int) any {
switch v := v.(*UploadFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[18].Exporter = func(v any, i int) any {
switch v := v.(*UploadFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[19].Exporter = func(v any, i int) any {
switch v := v.(*DownloadFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[20].Exporter = func(v any, i int) any {
switch v := v.(*DownloadFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[21].Exporter = func(v any, i int) any {
switch v := v.(*TreeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[22].Exporter = func(v any, i int) any {
switch v := v.(*TreeNode); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[23].Exporter = func(v any, i int) any {
switch v := v.(*TreeResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[24].Exporter = func(v any, i int) any {
switch v := v.(*StatFileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_workspace_v1_workspace_proto_msgTypes[25].Exporter = func(v any, i int) any {
switch v := v.(*StatFileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_workspace_v1_workspace_proto_rawDesc,
NumEnums: 0,
NumMessages: 26,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_workspace_v1_workspace_proto_goTypes,
DependencyIndexes: file_workspace_v1_workspace_proto_depIdxs,
MessageInfos: file_workspace_v1_workspace_proto_msgTypes,
}.Build()
File_workspace_v1_workspace_proto = out.File
file_workspace_v1_workspace_proto_rawDesc = nil
file_workspace_v1_workspace_proto_goTypes = nil
file_workspace_v1_workspace_proto_depIdxs = nil
}