// 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-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 // - protoc v3.21.12 // source: workspace/v1/workspace.proto package workspacev1 import ( context "context" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" ) // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. // Requires gRPC-Go v1.64.0 or later. const _ = grpc.SupportPackageIsVersion9 const ( WorkspaceService_ReadFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/ReadFile" WorkspaceService_WriteFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/WriteFile" WorkspaceService_EditFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/EditFile" WorkspaceService_MultiEditFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/MultiEditFile" WorkspaceService_ListDirectory_FullMethodName = "/enkly.workspace.v1.WorkspaceService/ListDirectory" WorkspaceService_GlobSearch_FullMethodName = "/enkly.workspace.v1.WorkspaceService/GlobSearch" WorkspaceService_Grep_FullMethodName = "/enkly.workspace.v1.WorkspaceService/Grep" WorkspaceService_RunBashCommand_FullMethodName = "/enkly.workspace.v1.WorkspaceService/RunBashCommand" WorkspaceService_UploadFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/UploadFile" WorkspaceService_DownloadFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/DownloadFile" WorkspaceService_Tree_FullMethodName = "/enkly.workspace.v1.WorkspaceService/Tree" WorkspaceService_StatFile_FullMethodName = "/enkly.workspace.v1.WorkspaceService/StatFile" ) // WorkspaceServiceClient is the client API for WorkspaceService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type WorkspaceServiceClient interface { // --- agent filesystem/bash tools (internal/llm/tools.go, sandbox.go) --- ReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error) WriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*WriteFileResponse, error) EditFile(ctx context.Context, in *EditFileRequest, opts ...grpc.CallOption) (*EditFileResponse, error) MultiEditFile(ctx context.Context, in *MultiEditFileRequest, opts ...grpc.CallOption) (*MultiEditFileResponse, error) ListDirectory(ctx context.Context, in *ListDirectoryRequest, opts ...grpc.CallOption) (*ListDirectoryResponse, error) GlobSearch(ctx context.Context, in *GlobSearchRequest, opts ...grpc.CallOption) (*GlobSearchResponse, error) Grep(ctx context.Context, in *GrepRequest, opts ...grpc.CallOption) (*GrepResponse, error) RunBashCommand(ctx context.Context, in *RunBashCommandRequest, opts ...grpc.CallOption) (*RunBashCommandResponse, error) // --- human-facing files panel (internal/handlers/files.go, ui.go) --- UploadFile(ctx context.Context, in *UploadFileRequest, opts ...grpc.CallOption) (*UploadFileResponse, error) DownloadFile(ctx context.Context, in *DownloadFileRequest, opts ...grpc.CallOption) (*DownloadFileResponse, error) Tree(ctx context.Context, in *TreeRequest, opts ...grpc.CallOption) (*TreeResponse, error) StatFile(ctx context.Context, in *StatFileRequest, opts ...grpc.CallOption) (*StatFileResponse, error) } type workspaceServiceClient struct { cc grpc.ClientConnInterface } func NewWorkspaceServiceClient(cc grpc.ClientConnInterface) WorkspaceServiceClient { return &workspaceServiceClient{cc} } func (c *workspaceServiceClient) ReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ReadFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_ReadFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) WriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*WriteFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(WriteFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_WriteFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) EditFile(ctx context.Context, in *EditFileRequest, opts ...grpc.CallOption) (*EditFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(EditFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_EditFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) MultiEditFile(ctx context.Context, in *MultiEditFileRequest, opts ...grpc.CallOption) (*MultiEditFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MultiEditFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_MultiEditFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) ListDirectory(ctx context.Context, in *ListDirectoryRequest, opts ...grpc.CallOption) (*ListDirectoryResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListDirectoryResponse) err := c.cc.Invoke(ctx, WorkspaceService_ListDirectory_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) GlobSearch(ctx context.Context, in *GlobSearchRequest, opts ...grpc.CallOption) (*GlobSearchResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GlobSearchResponse) err := c.cc.Invoke(ctx, WorkspaceService_GlobSearch_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) Grep(ctx context.Context, in *GrepRequest, opts ...grpc.CallOption) (*GrepResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GrepResponse) err := c.cc.Invoke(ctx, WorkspaceService_Grep_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) RunBashCommand(ctx context.Context, in *RunBashCommandRequest, opts ...grpc.CallOption) (*RunBashCommandResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RunBashCommandResponse) err := c.cc.Invoke(ctx, WorkspaceService_RunBashCommand_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) UploadFile(ctx context.Context, in *UploadFileRequest, opts ...grpc.CallOption) (*UploadFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UploadFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_UploadFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) DownloadFile(ctx context.Context, in *DownloadFileRequest, opts ...grpc.CallOption) (*DownloadFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DownloadFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_DownloadFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) Tree(ctx context.Context, in *TreeRequest, opts ...grpc.CallOption) (*TreeResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TreeResponse) err := c.cc.Invoke(ctx, WorkspaceService_Tree_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } func (c *workspaceServiceClient) StatFile(ctx context.Context, in *StatFileRequest, opts ...grpc.CallOption) (*StatFileResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(StatFileResponse) err := c.cc.Invoke(ctx, WorkspaceService_StatFile_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } // WorkspaceServiceServer is the server API for WorkspaceService service. // All implementations must embed UnimplementedWorkspaceServiceServer // for forward compatibility. type WorkspaceServiceServer interface { // --- agent filesystem/bash tools (internal/llm/tools.go, sandbox.go) --- ReadFile(context.Context, *ReadFileRequest) (*ReadFileResponse, error) WriteFile(context.Context, *WriteFileRequest) (*WriteFileResponse, error) EditFile(context.Context, *EditFileRequest) (*EditFileResponse, error) MultiEditFile(context.Context, *MultiEditFileRequest) (*MultiEditFileResponse, error) ListDirectory(context.Context, *ListDirectoryRequest) (*ListDirectoryResponse, error) GlobSearch(context.Context, *GlobSearchRequest) (*GlobSearchResponse, error) Grep(context.Context, *GrepRequest) (*GrepResponse, error) RunBashCommand(context.Context, *RunBashCommandRequest) (*RunBashCommandResponse, error) // --- human-facing files panel (internal/handlers/files.go, ui.go) --- UploadFile(context.Context, *UploadFileRequest) (*UploadFileResponse, error) DownloadFile(context.Context, *DownloadFileRequest) (*DownloadFileResponse, error) Tree(context.Context, *TreeRequest) (*TreeResponse, error) StatFile(context.Context, *StatFileRequest) (*StatFileResponse, error) mustEmbedUnimplementedWorkspaceServiceServer() } // UnimplementedWorkspaceServiceServer must be embedded to have // forward compatible implementations. // // NOTE: this should be embedded by value instead of pointer to avoid a nil // pointer dereference when methods are called. type UnimplementedWorkspaceServiceServer struct{} func (UnimplementedWorkspaceServiceServer) ReadFile(context.Context, *ReadFileRequest) (*ReadFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReadFile not implemented") } func (UnimplementedWorkspaceServiceServer) WriteFile(context.Context, *WriteFileRequest) (*WriteFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WriteFile not implemented") } func (UnimplementedWorkspaceServiceServer) EditFile(context.Context, *EditFileRequest) (*EditFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EditFile not implemented") } func (UnimplementedWorkspaceServiceServer) MultiEditFile(context.Context, *MultiEditFileRequest) (*MultiEditFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method MultiEditFile not implemented") } func (UnimplementedWorkspaceServiceServer) ListDirectory(context.Context, *ListDirectoryRequest) (*ListDirectoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListDirectory not implemented") } func (UnimplementedWorkspaceServiceServer) GlobSearch(context.Context, *GlobSearchRequest) (*GlobSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GlobSearch not implemented") } func (UnimplementedWorkspaceServiceServer) Grep(context.Context, *GrepRequest) (*GrepResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Grep not implemented") } func (UnimplementedWorkspaceServiceServer) RunBashCommand(context.Context, *RunBashCommandRequest) (*RunBashCommandResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RunBashCommand not implemented") } func (UnimplementedWorkspaceServiceServer) UploadFile(context.Context, *UploadFileRequest) (*UploadFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UploadFile not implemented") } func (UnimplementedWorkspaceServiceServer) DownloadFile(context.Context, *DownloadFileRequest) (*DownloadFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DownloadFile not implemented") } func (UnimplementedWorkspaceServiceServer) Tree(context.Context, *TreeRequest) (*TreeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Tree not implemented") } func (UnimplementedWorkspaceServiceServer) StatFile(context.Context, *StatFileRequest) (*StatFileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatFile not implemented") } func (UnimplementedWorkspaceServiceServer) mustEmbedUnimplementedWorkspaceServiceServer() {} func (UnimplementedWorkspaceServiceServer) testEmbeddedByValue() {} // UnsafeWorkspaceServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to WorkspaceServiceServer will // result in compilation errors. type UnsafeWorkspaceServiceServer interface { mustEmbedUnimplementedWorkspaceServiceServer() } func RegisterWorkspaceServiceServer(s grpc.ServiceRegistrar, srv WorkspaceServiceServer) { // If the following call pancis, it indicates UnimplementedWorkspaceServiceServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { t.testEmbeddedByValue() } s.RegisterService(&WorkspaceService_ServiceDesc, srv) } func _WorkspaceService_ReadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReadFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).ReadFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_ReadFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).ReadFile(ctx, req.(*ReadFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_WriteFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WriteFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).WriteFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_WriteFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).WriteFile(ctx, req.(*WriteFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_EditFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(EditFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).EditFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_EditFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).EditFile(ctx, req.(*EditFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_MultiEditFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MultiEditFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).MultiEditFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_MultiEditFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).MultiEditFile(ctx, req.(*MultiEditFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_ListDirectory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListDirectoryRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).ListDirectory(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_ListDirectory_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).ListDirectory(ctx, req.(*ListDirectoryRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_GlobSearch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GlobSearchRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).GlobSearch(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_GlobSearch_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).GlobSearch(ctx, req.(*GlobSearchRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_Grep_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GrepRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).Grep(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_Grep_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).Grep(ctx, req.(*GrepRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_RunBashCommand_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RunBashCommandRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).RunBashCommand(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_RunBashCommand_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).RunBashCommand(ctx, req.(*RunBashCommandRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_UploadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UploadFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).UploadFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_UploadFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).UploadFile(ctx, req.(*UploadFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_DownloadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DownloadFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).DownloadFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_DownloadFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).DownloadFile(ctx, req.(*DownloadFileRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_Tree_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TreeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).Tree(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_Tree_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).Tree(ctx, req.(*TreeRequest)) } return interceptor(ctx, in, info, handler) } func _WorkspaceService_StatFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(StatFileRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(WorkspaceServiceServer).StatFile(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: WorkspaceService_StatFile_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WorkspaceServiceServer).StatFile(ctx, req.(*StatFileRequest)) } return interceptor(ctx, in, info, handler) } // WorkspaceService_ServiceDesc is the grpc.ServiceDesc for WorkspaceService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var WorkspaceService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "enkly.workspace.v1.WorkspaceService", HandlerType: (*WorkspaceServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ReadFile", Handler: _WorkspaceService_ReadFile_Handler, }, { MethodName: "WriteFile", Handler: _WorkspaceService_WriteFile_Handler, }, { MethodName: "EditFile", Handler: _WorkspaceService_EditFile_Handler, }, { MethodName: "MultiEditFile", Handler: _WorkspaceService_MultiEditFile_Handler, }, { MethodName: "ListDirectory", Handler: _WorkspaceService_ListDirectory_Handler, }, { MethodName: "GlobSearch", Handler: _WorkspaceService_GlobSearch_Handler, }, { MethodName: "Grep", Handler: _WorkspaceService_Grep_Handler, }, { MethodName: "RunBashCommand", Handler: _WorkspaceService_RunBashCommand_Handler, }, { MethodName: "UploadFile", Handler: _WorkspaceService_UploadFile_Handler, }, { MethodName: "DownloadFile", Handler: _WorkspaceService_DownloadFile_Handler, }, { MethodName: "Tree", Handler: _WorkspaceService_Tree_Handler, }, { MethodName: "StatFile", Handler: _WorkspaceService_StatFile_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "workspace/v1/workspace.proto", }