1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package plugin_manager
- import (
- "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/serverless"
- "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/routine"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
- )
- type PluginInstallEvent string
- const (
- PluginInstallEventInfo PluginInstallEvent = "info"
- PluginInstallEventDone PluginInstallEvent = "done"
- PluginInstallEventError PluginInstallEvent = "error"
- )
- type PluginInstallResponse struct {
- Event PluginInstallEvent `json:"event"`
- Data string `json:"data"`
- }
- // InstallToAWSFromPkg installs a plugin to AWS Lambda
- func (p *PluginManager) InstallToAWSFromPkg(decoder decoder.PluginDecoder) (
- *stream.Stream[PluginInstallResponse], error,
- ) {
- response, err := serverless.UploadPlugin(decoder)
- if err != nil {
- return nil, err
- }
- new_response := stream.NewStream[PluginInstallResponse](2)
- routine.Submit(func() {
- response.Async(func(r serverless.LaunchAWSLambdaFunctionResponse) {
- if r.Event == serverless.Info {
- new_response.Write(PluginInstallResponse{
- Event: PluginInstallEventInfo,
- Data: "Installing...",
- })
- } else if r.Event == serverless.Done {
- new_response.Write(PluginInstallResponse{
- Event: PluginInstallEventDone,
- Data: "Installed",
- })
- } else if r.Event == serverless.Error {
- new_response.Write(PluginInstallResponse{
- Event: PluginInstallEventError,
- })
- }
- })
- })
- return new_response, nil
- }
- // InstallToLocal installs a plugin to local
- func (p *PluginManager) InstallToLocal(decoder decoder.PluginDecoder) (
- *stream.Stream[PluginInstallResponse], error,
- ) {
- return nil, nil
- }
|