Преглед изворни кода

refactor: confused code structure

Yeuoly пре 6 месеци
родитељ
комит
8796edad8c
59 измењених фајлова са 141 додато и 149 уклоњено
  1. 2 2
      internal/cluster/plugin_test.go
  2. 0 1
      internal/core/plugin_manager/aws_manager/init.go
  3. 0 13
      internal/core/plugin_manager/basic_manager/type.go
  4. 42 0
      internal/core/plugin_manager/basic_runtime/checksum.go
  5. 13 2
      internal/core/plugin_manager/basic_manager/remap_assets.go
  6. 1 1
      internal/core/plugin_manager/remote_manager/checksum.go
  7. 1 1
      internal/core/plugin_manager/remote_manager/codec.go
  8. 1 1
      internal/core/plugin_manager/remote_manager/codec_test.go
  9. 1 1
      internal/core/plugin_manager/remote_manager/connection_key.go
  10. 1 1
      internal/core/plugin_manager/remote_manager/connection_key_test.go
  11. 1 1
      internal/core/plugin_manager/remote_manager/environment.go
  12. 5 5
      internal/core/plugin_manager/remote_manager/hooks.go
  13. 2 2
      internal/core/plugin_manager/remote_manager/io.go
  14. 1 1
      internal/core/plugin_manager/remote_manager/register.go
  15. 2 2
      internal/core/plugin_manager/remote_manager/run.go
  16. 4 4
      internal/core/plugin_manager/remote_manager/server.go
  17. 3 3
      internal/core/plugin_manager/remote_manager/server_test.go
  18. 3 3
      internal/core/plugin_manager/remote_manager/type.go
  19. 1 1
      internal/core/plugin_manager/install_to_serverless.go
  20. 7 8
      internal/core/plugin_manager/launcher.go
  21. 0 1
      internal/core/plugin_manager/local_manager/tester.go
  22. 1 1
      internal/core/plugin_manager/local_manager/environment.go
  23. 1 1
      internal/core/plugin_manager/local_manager/environment_python.go
  24. 1 1
      internal/core/plugin_manager/local_manager/io.go
  25. 2 2
      internal/core/plugin_manager/local_manager/run.go
  26. 1 1
      internal/core/plugin_manager/local_manager/stdio_handle.go
  27. 1 1
      internal/core/plugin_manager/local_manager/stdio_store.go
  28. 1 0
      internal/core/plugin_manager/local_runtime/tester.go
  29. 3 3
      internal/core/plugin_manager/local_manager/type.go
  30. 10 10
      internal/core/plugin_manager/manager.go
  31. 1 1
      internal/core/plugin_manager/media_manager/assets.go
  32. 1 1
      internal/core/plugin_manager/media_manager/assets_bucket.go
  33. 1 1
      internal/core/plugin_manager/media_manager/installed_bucket.go
  34. 1 1
      internal/core/plugin_manager/media_manager/package_bucket.go
  35. 0 30
      internal/core/plugin_manager/positive_manager/environment.go
  36. 0 16
      internal/core/plugin_manager/positive_manager/types.go
  37. 6 7
      internal/core/plugin_manager/serverless.go
  38. 0 0
      internal/core/plugin_manager/serverless_connector/client.go
  39. 0 0
      internal/core/plugin_manager/serverless_connector/connector.go
  40. 1 1
      internal/core/plugin_manager/serverless/packager.go
  41. 0 0
      internal/core/plugin_manager/serverless_connector/packager_test.go
  42. 0 0
      internal/core/plugin_manager/serverless_connector/packager_test_plugin/main.py
  43. 0 0
      internal/core/plugin_manager/serverless_connector/packager_test_plugin/manifest.yaml
  44. 0 0
      internal/core/plugin_manager/serverless_connector/packager_test_plugin/provider/jina.yaml
  45. 0 0
      internal/core/plugin_manager/serverless_connector/packager_test_plugin/requirements.txt
  46. 0 0
      internal/core/plugin_manager/serverless_connector/upload.go
  47. 0 0
      internal/core/plugin_manager/serverless_runtime/dockerfile/build.go
  48. 0 0
      internal/core/plugin_manager/serverless_runtime/dockerfile/build_test.go
  49. 0 0
      internal/core/plugin_manager/serverless_runtime/dockerfile/python.go
  50. 0 0
      internal/core/plugin_manager/serverless_runtime/dockerfile/python312.dockerfile
  51. 1 1
      internal/core/plugin_manager/aws_manager/environment.go
  52. 1 0
      internal/core/plugin_manager/serverless_runtime/init.go
  53. 2 2
      internal/core/plugin_manager/aws_manager/io.go
  54. 1 1
      internal/core/plugin_manager/aws_manager/run.go
  55. 3 3
      internal/core/plugin_manager/aws_manager/type.go
  56. 2 2
      internal/core/plugin_manager/tester.go
  57. 4 4
      internal/core/plugin_manager/watcher.go
  58. 2 2
      internal/core/plugin_manager/watcher_test.go
  59. 2 2
      internal/service/debugging.go

+ 2 - 2
internal/cluster/plugin_test.go

@@ -5,7 +5,7 @@ import (
 	"time"
 
 	"github.com/google/uuid"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/manifest_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
@@ -13,7 +13,7 @@ import (
 
 type fakePlugin struct {
 	plugin_entities.PluginRuntime
-	positive_manager.PositivePluginRuntime
+	basic_runtime.BasicChecksum
 }
 
 func (r *fakePlugin) InitEnvironment() error {

+ 0 - 1
internal/core/plugin_manager/aws_manager/init.go

@@ -1 +0,0 @@
-package aws_manager

+ 0 - 13
internal/core/plugin_manager/basic_manager/type.go

@@ -1,13 +0,0 @@
-package basic_manager
-
-import "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_manager"
-
-type BasicPluginRuntime struct {
-	mediaManager *media_manager.MediaBucket
-
-	assetsIds []string
-}
-
-func NewBasicPluginRuntime(mediaManager *media_manager.MediaBucket) BasicPluginRuntime {
-	return BasicPluginRuntime{mediaManager: mediaManager}
-}

+ 42 - 0
internal/core/plugin_manager/basic_runtime/checksum.go

@@ -0,0 +1,42 @@
+package basic_runtime
+
+import (
+	"os"
+
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
+)
+
+type BasicChecksum struct {
+	MediaTransport
+
+	WorkingPath string
+	// plugin decoder used to manage the plugin
+	Decoder decoder.PluginDecoder
+
+	InnerChecksum string
+}
+
+func (r *BasicChecksum) calculateChecksum() (string, error) {
+	checksum, err := r.Decoder.Checksum()
+	if err != nil {
+		return "", err
+	}
+
+	return checksum, nil
+}
+
+func (r *BasicChecksum) Checksum() (string, error) {
+	if r.InnerChecksum == "" {
+		checksum, err := r.calculateChecksum()
+		if err != nil {
+			return "", err
+		}
+		r.InnerChecksum = checksum
+	}
+
+	return r.InnerChecksum, nil
+}
+
+func (r *BasicChecksum) Cleanup() {
+	os.RemoveAll(r.WorkingPath)
+}

+ 13 - 2
internal/core/plugin_manager/basic_manager/remap_assets.go

@@ -1,11 +1,18 @@
-package basic_manager
+package basic_runtime
 
 import (
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_transport"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 )
 
+type MediaTransport struct {
+	mediaManager *media_transport.MediaBucket
+
+	assetsIds []string
+}
+
 // RemapAssets will take the assets and remap them to a media id
-func (r *BasicPluginRuntime) RemapAssets(
+func (r *MediaTransport) RemapAssets(
 	declaration *plugin_entities.PluginDeclaration,
 	assets map[string][]byte,
 ) error {
@@ -17,3 +24,7 @@ func (r *BasicPluginRuntime) RemapAssets(
 	r.assetsIds = assetsIds
 	return nil
 }
+
+func NewMediaTransport(mediaManager *media_transport.MediaBucket) MediaTransport {
+	return MediaTransport{mediaManager: mediaManager}
+}

+ 1 - 1
internal/core/plugin_manager/remote_manager/checksum.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"bytes"

+ 1 - 1
internal/core/plugin_manager/remote_manager/codec.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"bytes"

+ 1 - 1
internal/core/plugin_manager/remote_manager/codec_test.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"testing"

+ 1 - 1
internal/core/plugin_manager/remote_manager/connection_key.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"strings"

+ 1 - 1
internal/core/plugin_manager/remote_manager/connection_key_test.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"testing"

+ 1 - 1
internal/core/plugin_manager/remote_manager/environment.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"fmt"

+ 5 - 5
internal/core/plugin_manager/remote_manager/hooks.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"bytes"
@@ -8,8 +8,8 @@ import (
 	"sync/atomic"
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_transport"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/cache"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/log"
@@ -29,7 +29,7 @@ type DifyServer struct {
 
 	engine gnet.Engine
 
-	mediaManager *media_manager.MediaBucket
+	mediaManager *media_transport.MediaBucket
 
 	// listening address
 	addr string
@@ -62,7 +62,7 @@ func (s *DifyServer) OnOpen(c gnet.Conn) (out []byte, action gnet.Action) {
 	// new plugin connected
 	c.SetContext(&codec{})
 	runtime := &RemotePluginRuntime{
-		BasicPluginRuntime: basic_manager.NewBasicPluginRuntime(
+		MediaTransport: basic_runtime.NewMediaTransport(
 			s.mediaManager,
 		),
 

+ 2 - 2
internal/core/plugin_manager/remote_manager/io.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"encoding/json"
@@ -17,7 +17,7 @@ func (r *RemotePluginRuntime) Listen(session_id string) *entities.Broadcast[plug
 	listener.OnClose(func() {
 		// execute in new goroutine to avoid deadlock
 		routine.Submit(map[string]string{
-			"module": "remote_manager",
+			"module": "debugging_runtime",
 			"method": "removeMessageCallbackHandler",
 		}, func() {
 			r.removeMessageCallbackHandler(session_id)

+ 1 - 1
internal/core/plugin_manager/remote_manager/register.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import "github.com/langgenius/dify-plugin-daemon/internal/service/install_service"
 

+ 2 - 2
internal/core/plugin_manager/remote_manager/run.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"time"
@@ -39,7 +39,7 @@ func (r *RemotePluginRuntime) StartPlugin() error {
 
 	// handle heartbeat
 	routine.Submit(map[string]string{
-		"module":    "remote_manager",
+		"module":    "debugging_runtime",
 		"function":  "StartPlugin",
 		"plugin_id": identity.String(),
 	}, func() {

+ 4 - 4
internal/core/plugin_manager/remote_manager/server.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"context"
@@ -11,7 +11,7 @@ import (
 	"syscall"
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_transport"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/app"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
@@ -102,7 +102,7 @@ func (s *RemotePluginServer) collectShutdownSignal() {
 }
 
 // NewRemotePluginServer creates a new RemotePluginServer
-func NewRemotePluginServer(config *app.Config, media_manager *media_manager.MediaBucket) *RemotePluginServer {
+func NewRemotePluginServer(config *app.Config, media_transport *media_transport.MediaBucket) *RemotePluginServer {
 	addr := fmt.Sprintf(
 		"tcp://%s:%d",
 		config.PluginRemoteInstallingHost,
@@ -115,7 +115,7 @@ func NewRemotePluginServer(config *app.Config, media_manager *media_manager.Medi
 
 	multicore := true
 	s := &DifyServer{
-		mediaManager: media_manager,
+		mediaManager: media_transport,
 		addr:         addr,
 		port:         config.PluginRemoteInstallingPort,
 		multicore:    multicore,

+ 3 - 3
internal/core/plugin_manager/remote_manager/server_test.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"errors"
@@ -9,7 +9,7 @@ import (
 	"time"
 
 	"github.com/google/uuid"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_transport"
 	"github.com/langgenius/dify-plugin-daemon/internal/db"
 	"github.com/langgenius/dify-plugin-daemon/internal/oss/local"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/app"
@@ -49,7 +49,7 @@ func preparePluginServer(t *testing.T) (*RemotePluginServer, uint16) {
 		PluginRemoteInstallingPort:             port,
 		PluginRemoteInstallingMaxConn:          1,
 		PluginRemoteInstallServerEventLoopNums: 8,
-	}, media_manager.NewAssetsBucket(oss, "assets", 10)), port
+	}, media_transport.NewAssetsBucket(oss, "assets", 10)), port
 }
 
 // TestLaunchAndClosePluginServer tests the launch and close of the plugin server

+ 3 - 3
internal/core/plugin_manager/remote_manager/type.go

@@ -1,4 +1,4 @@
-package remote_manager
+package debugging_runtime
 
 import (
 	"bytes"
@@ -6,7 +6,7 @@ import (
 	"sync/atomic"
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
 	"github.com/panjf2000/gnet/v2"
@@ -17,7 +17,7 @@ type pluginRuntimeMode string
 const _PLUGIN_RUNTIME_MODE_CI pluginRuntimeMode = "ci"
 
 type RemotePluginRuntime struct {
-	basic_manager.BasicPluginRuntime
+	basic_runtime.MediaTransport
 	plugin_entities.PluginRuntime
 
 	// connection

+ 1 - 1
internal/core/plugin_manager/install_to_serverless.go

@@ -3,7 +3,7 @@ package plugin_manager
 import (
 	"fmt"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless"
+	serverless "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless_connector"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
 	"github.com/langgenius/dify-plugin-daemon/internal/db"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/models"

+ 7 - 8
internal/core/plugin_manager/launcher.go

@@ -7,9 +7,8 @@ import (
 	"path"
 	"strings"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/local_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/local_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/log"
@@ -130,12 +129,12 @@ func (p *PluginManager) launchLocal(pluginUniqueIdentifier plugin_entities.Plugi
 		return nil, nil, nil, failed(err.Error())
 	}
 
-	localPluginRuntime := local_manager.NewLocalPluginRuntime(p.pythonInterpreterPath)
+	localPluginRuntime := local_runtime.NewLocalPluginRuntime(p.pythonInterpreterPath)
 	localPluginRuntime.PluginRuntime = plugin.runtime
-	localPluginRuntime.PositivePluginRuntime = positive_manager.PositivePluginRuntime{
-		BasicPluginRuntime: basic_manager.NewBasicPluginRuntime(p.mediaBucket),
-		WorkingPath:        plugin.runtime.State.WorkingPath,
-		Decoder:            plugin.decoder,
+	localPluginRuntime.BasicChecksum = basic_runtime.BasicChecksum{
+		MediaTransport: basic_runtime.NewMediaTransport(p.mediaBucket),
+		WorkingPath:    plugin.runtime.State.WorkingPath,
+		Decoder:        plugin.decoder,
 	}
 
 	if err := localPluginRuntime.RemapAssets(

+ 0 - 1
internal/core/plugin_manager/local_manager/tester.go

@@ -1 +0,0 @@
-package local_manager

+ 1 - 1
internal/core/plugin_manager/local_manager/environment.go

@@ -1,4 +1,4 @@
-package local_manager
+package local_runtime
 
 import (
 	"fmt"

+ 1 - 1
internal/core/plugin_manager/local_manager/environment_python.go

@@ -1,4 +1,4 @@
-package local_manager
+package local_runtime
 
 import (
 	"bytes"

+ 1 - 1
internal/core/plugin_manager/local_manager/io.go

@@ -1,4 +1,4 @@
-package local_manager
+package local_runtime
 
 import (
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities"

+ 2 - 2
internal/core/plugin_manager/local_manager/run.go

@@ -1,5 +1,5 @@
-// Package local_manager handles the local plugin runtime management
-package local_manager
+// Package local_runtime handles the local plugin runtime management
+package local_runtime
 
 import (
 	"errors"

+ 1 - 1
internal/core/plugin_manager/local_manager/stdio_handle.go

@@ -1,4 +1,4 @@
-package local_manager
+package local_runtime
 
 import (
 	"bufio"

+ 1 - 1
internal/core/plugin_manager/local_manager/stdio_store.go

@@ -1,4 +1,4 @@
-package local_manager
+package local_runtime
 
 import (
 	"io"

+ 1 - 0
internal/core/plugin_manager/local_runtime/tester.go

@@ -0,0 +1 @@
+package local_runtime

+ 3 - 3
internal/core/plugin_manager/local_manager/type.go

@@ -1,14 +1,14 @@
-package local_manager
+package local_runtime
 
 import (
 	"sync"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 )
 
 type LocalPluginRuntime struct {
-	positive_manager.PositivePluginRuntime
+	basic_runtime.BasicChecksum
 	plugin_entities.PluginRuntime
 
 	waitChan   chan bool

+ 10 - 10
internal/core/plugin_manager/manager.go

@@ -7,9 +7,9 @@ import (
 
 	"github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation/real"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/remote_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/debugging_runtime"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/media_transport"
+	serverless "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless_connector"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
 	"github.com/langgenius/dify-plugin-daemon/internal/db"
 	"github.com/langgenius/dify-plugin-daemon/internal/oss"
@@ -36,13 +36,13 @@ type PluginManager struct {
 	pluginStoragePath string
 
 	// mediaBucket is used to manage media files like plugin icons, images, etc.
-	mediaBucket *media_manager.MediaBucket
+	mediaBucket *media_transport.MediaBucket
 
 	// packageBucket is used to manage plugin packages, all the packages uploaded by users will be saved here
-	packageBucket *media_manager.PackageBucket
+	packageBucket *media_transport.PackageBucket
 
 	// installedBucket is used to manage installed plugins, all the installed plugins will be saved here
-	installedBucket *media_manager.InstalledBucket
+	installedBucket *media_transport.InstalledBucket
 
 	// register plugin
 	pluginRegisters []func(lifetime plugin_entities.PluginLifetime) error
@@ -57,7 +57,7 @@ type PluginManager struct {
 	pythonInterpreterPath string
 
 	// remote plugin server
-	remotePluginServer remote_manager.RemotePluginServerInterface
+	remotePluginServer debugging_runtime.RemotePluginServerInterface
 
 	// max launching lock to prevent too many plugins launching at the same time
 	maxLaunchingLock chan bool
@@ -75,16 +75,16 @@ func InitGlobalManager(oss oss.OSS, configuration *app.Config) *PluginManager {
 		maxPluginPackageSize: configuration.MaxPluginPackageSize,
 		pluginStoragePath:    configuration.PluginInstalledPath,
 		workingDirectory:     configuration.PluginWorkingPath,
-		mediaBucket: media_manager.NewAssetsBucket(
+		mediaBucket: media_transport.NewAssetsBucket(
 			oss,
 			configuration.PluginMediaCachePath,
 			configuration.PluginMediaCacheSize,
 		),
-		packageBucket: media_manager.NewPackageBucket(
+		packageBucket: media_transport.NewPackageBucket(
 			oss,
 			configuration.PluginPackageCachePath,
 		),
-		installedBucket: media_manager.NewInstalledBucket(
+		installedBucket: media_transport.NewInstalledBucket(
 			oss,
 			configuration.PluginInstalledPath,
 		),

+ 1 - 1
internal/core/plugin_manager/media_manager/assets.go

@@ -1,4 +1,4 @@
-package media_manager
+package media_transport
 
 import (
 	"errors"

+ 1 - 1
internal/core/plugin_manager/media_manager/assets_bucket.go

@@ -1,4 +1,4 @@
-package media_manager
+package media_transport
 
 import (
 	"crypto/sha256"

+ 1 - 1
internal/core/plugin_manager/media_manager/installed_bucket.go

@@ -1,4 +1,4 @@
-package media_manager
+package media_transport
 
 import (
 	"path/filepath"

+ 1 - 1
internal/core/plugin_manager/media_manager/package_bucket.go

@@ -1,4 +1,4 @@
-package media_manager
+package media_transport
 
 import (
 	"path"

+ 0 - 30
internal/core/plugin_manager/positive_manager/environment.go

@@ -1,30 +0,0 @@
-package positive_manager
-
-import (
-	"os"
-)
-
-func (r *PositivePluginRuntime) calculateChecksum() (string, error) {
-	checksum, err := r.Decoder.Checksum()
-	if err != nil {
-		return "", err
-	}
-
-	return checksum, nil
-}
-
-func (r *PositivePluginRuntime) Checksum() (string, error) {
-	if r.InnerChecksum == "" {
-		checksum, err := r.calculateChecksum()
-		if err != nil {
-			return "", err
-		}
-		r.InnerChecksum = checksum
-	}
-
-	return r.InnerChecksum, nil
-}
-
-func (r *PositivePluginRuntime) Cleanup() {
-	os.RemoveAll(r.WorkingPath)
-}

+ 0 - 16
internal/core/plugin_manager/positive_manager/types.go

@@ -1,16 +0,0 @@
-package positive_manager
-
-import (
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
-)
-
-type PositivePluginRuntime struct {
-	basic_manager.BasicPluginRuntime
-
-	WorkingPath string
-	// plugin decoder used to manage the plugin
-	Decoder decoder.PluginDecoder
-
-	InnerChecksum string
-}

+ 6 - 7
internal/core/plugin_manager/serverless.go

@@ -4,9 +4,8 @@ import (
 	"fmt"
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/aws_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/db"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/models"
@@ -40,10 +39,10 @@ func (p *PluginManager) getServerlessPluginRuntime(
 	runtimeEntity.InitState()
 
 	// convert to plugin runtime
-	pluginRuntime := aws_manager.AWSPluginRuntime{
-		PositivePluginRuntime: positive_manager.PositivePluginRuntime{
-			BasicPluginRuntime: basic_manager.NewBasicPluginRuntime(p.mediaBucket),
-			InnerChecksum:      model.Checksum,
+	pluginRuntime := serverless_runtime.AWSPluginRuntime{
+		BasicChecksum: basic_runtime.BasicChecksum{
+			MediaTransport: basic_runtime.NewMediaTransport(p.mediaBucket),
+			InnerChecksum:  model.Checksum,
 		},
 		PluginRuntime: runtimeEntity,
 		LambdaURL:     model.FunctionURL,

internal/core/plugin_manager/serverless/client.go → internal/core/plugin_manager/serverless_connector/client.go


internal/core/plugin_manager/serverless/connector.go → internal/core/plugin_manager/serverless_connector/connector.go


+ 1 - 1
internal/core/plugin_manager/serverless/packager.go

@@ -11,7 +11,7 @@ import (
 	"strings"
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/aws_manager/dockerfile"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless_runtime/dockerfile"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/tmpfile"
 )

internal/core/plugin_manager/serverless/packager_test.go → internal/core/plugin_manager/serverless_connector/packager_test.go


internal/core/plugin_manager/serverless/packager_test_plugin/main.py → internal/core/plugin_manager/serverless_connector/packager_test_plugin/main.py


internal/core/plugin_manager/serverless/packager_test_plugin/manifest.yaml → internal/core/plugin_manager/serverless_connector/packager_test_plugin/manifest.yaml


internal/core/plugin_manager/serverless/packager_test_plugin/provider/jina.yaml → internal/core/plugin_manager/serverless_connector/packager_test_plugin/provider/jina.yaml


internal/core/plugin_manager/serverless/packager_test_plugin/requirements.txt → internal/core/plugin_manager/serverless_connector/packager_test_plugin/requirements.txt


internal/core/plugin_manager/serverless/upload.go → internal/core/plugin_manager/serverless_connector/upload.go


internal/core/plugin_manager/aws_manager/dockerfile/build.go → internal/core/plugin_manager/serverless_runtime/dockerfile/build.go


internal/core/plugin_manager/aws_manager/dockerfile/build_test.go → internal/core/plugin_manager/serverless_runtime/dockerfile/build_test.go


internal/core/plugin_manager/aws_manager/dockerfile/python.go → internal/core/plugin_manager/serverless_runtime/dockerfile/python.go


internal/core/plugin_manager/aws_manager/dockerfile/python312.dockerfile → internal/core/plugin_manager/serverless_runtime/dockerfile/python312.dockerfile


+ 1 - 1
internal/core/plugin_manager/aws_manager/environment.go

@@ -1,4 +1,4 @@
-package aws_manager
+package serverless_runtime
 
 import (
 	"fmt"

+ 1 - 0
internal/core/plugin_manager/serverless_runtime/init.go

@@ -0,0 +1 @@
+package serverless_runtime

+ 2 - 2
internal/core/plugin_manager/aws_manager/io.go

@@ -1,4 +1,4 @@
-package aws_manager
+package serverless_runtime
 
 import (
 	"bufio"
@@ -60,7 +60,7 @@ func (r *AWSPluginRuntime) Write(session_id string, data []byte) {
 	req.Header.Set("Dify-Plugin-Session-ID", session_id)
 
 	routine.Submit(map[string]string{
-		"module":     "aws_manager",
+		"module":     "serverless_runtime",
 		"function":   "Write",
 		"session_id": session_id,
 		"lambda_url": r.LambdaURL,

+ 1 - 1
internal/core/plugin_manager/aws_manager/run.go

@@ -1,4 +1,4 @@
-package aws_manager
+package serverless_runtime
 
 import "github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 

+ 3 - 3
internal/core/plugin_manager/aws_manager/type.go

@@ -1,16 +1,16 @@
-package aws_manager
+package serverless_runtime
 
 import (
 	"net/http"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/mapping"
 )
 
 type AWSPluginRuntime struct {
-	positive_manager.PositivePluginRuntime
+	basic_runtime.BasicChecksum
 	plugin_entities.PluginRuntime
 
 	// access url for the lambda function

+ 2 - 2
internal/core/plugin_manager/tester.go

@@ -24,10 +24,10 @@ NOTE: tester is deprecated, maybe, in several months, we will support this again
 // 		return nil, errors.Join(err, errors.New("failed to get assets"))
 // 	}
 
-// 	local_plugin_runtime := local_manager.NewLocalPluginRuntime(p.pythonInterpreterPath)
+// 	local_plugin_runtime := local_runtime.NewLocalPluginRuntime(p.pythonInterpreterPath)
 // 	local_plugin_runtime.PluginRuntime = plugin.runtime
 // 	local_plugin_runtime.PositivePluginRuntime = positive_manager.PositivePluginRuntime{
-// 		BasicPluginRuntime: basic_manager.NewBasicPluginRuntime(p.mediaBucket),
+// 		BasicPluginRuntime: basic_runtime.NewBasicPluginRuntime(p.mediaBucket),
 // 		WorkingPath:        plugin.runtime.State.WorkingPath,
 // 		Decoder:            plugin.decoder,
 // 	}

+ 4 - 4
internal/core/plugin_manager/watcher.go

@@ -3,8 +3,8 @@ package plugin_manager
 import (
 	"time"
 
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/local_manager"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/remote_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/debugging_runtime"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/local_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/app"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/log"
@@ -26,7 +26,7 @@ func (p *PluginManager) initRemotePluginServer(config *app.Config) {
 	if p.remotePluginServer != nil {
 		return
 	}
-	p.remotePluginServer = remote_manager.NewRemotePluginServer(config, p.mediaBucket)
+	p.remotePluginServer = debugging_runtime.NewRemotePluginServer(config, p.mediaBucket)
 }
 
 func (p *PluginManager) startRemoteWatcher(config *app.Config) {
@@ -95,7 +95,7 @@ func (p *PluginManager) removeUninstalledLocalPlugins() {
 	// read all local plugin runtimes
 	p.m.Range(func(key string, value plugin_entities.PluginLifetime) bool {
 		// try to convert to local runtime
-		runtime, ok := value.(*local_manager.LocalPluginRuntime)
+		runtime, ok := value.(*local_runtime.LocalPluginRuntime)
 		if !ok {
 			return true
 		}

+ 2 - 2
internal/core/plugin_manager/watcher_test.go

@@ -5,7 +5,7 @@ import (
 	"time"
 
 	"github.com/google/uuid"
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/basic_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/oss/local"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/app"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities"
@@ -16,7 +16,7 @@ import (
 
 type fakePlugin struct {
 	plugin_entities.PluginRuntime
-	positive_manager.PositivePluginRuntime
+	basic_runtime.BasicChecksum
 }
 
 func (r *fakePlugin) InitEnvironment() error {

+ 2 - 2
internal/service/debugging.go

@@ -1,7 +1,7 @@
 package service
 
 import (
-	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/remote_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/debugging_runtime"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/exception"
 )
@@ -11,7 +11,7 @@ func GetRemoteDebuggingKey(tenant_id string) *entities.Response {
 		Key string `json:"key"`
 	}
 
-	key, err := remote_manager.GetConnectionKey(remote_manager.ConnectionInfo{
+	key, err := debugging_runtime.GetConnectionKey(debugging_runtime.ConnectionInfo{
 		TenantId: tenant_id,
 	})