MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / InstallPlugin

Method InstallPlugin

agent/app/service/agents_channels.go:355–398  ·  view source on GitHub ↗
(req dto.AgentPluginInstallReq)

Source from the content-addressed store, hash-verified

353}
354
355func (a AgentService) InstallPlugin(req dto.AgentPluginInstallReq) error {
356 agent, install, err := a.loadAgentAndInstall(req.AgentID)
357 if err != nil {
358 return err
359 }
360 if err := task.CheckScopeTaskIsExecuting(task.TaskScopeAI, req.AgentID); err != nil {
361 return err
362 }
363 spec, pluginID, err := resolvePluginMeta(req.Type)
364 if err != nil {
365 return err
366 }
367 installTask, err := task.NewTaskWithOps(req.Type, task.TaskInstall, task.TaskScopeAI, req.TaskID, req.AgentID)
368 if err != nil {
369 return err
370 }
371 installTask.AddSubTask("Install OpenClaw plugin", func(t *task.Task) error {
372 mgr := cmd.NewCommandMgr(cmd.WithTask(*t), cmd.WithContext(t.TaskCtx), cmd.WithTimeout(10*time.Minute))
373 if req.Type == "qqbot" {
374 legacyPluginPath := path.Join(openclawPluginBaseDir, "qqbot")
375 if err := mgr.Run("docker", "exec", install.ContainerName, "test", "-d", legacyPluginPath); err == nil {
376 if err := uninstallOpenclawPlugin(mgr, install.ContainerName, "qqbot"); err != nil {
377 return err
378 }
379 time.Sleep(2 * time.Second)
380 }
381 }
382 if err := installOpenclawPlugin(mgr, install.ContainerName, spec, pluginID); err != nil {
383 return err
384 }
385 conf, err := readOpenclawConfig(agent.ConfigPath)
386 if err != nil {
387 return err
388 }
389 appendPluginAllow(conf, pluginID)
390 return writeOpenclawConfigRaw(agent.ConfigPath, conf)
391 }, nil)
392 go func() {
393 if err := installTask.Execute(); err != nil {
394 global.LOG.Errorf("install openclaw plugin failed: %v", err)
395 }
396 }()
397 return nil
398}
399
400func (a AgentService) UpgradePlugin(req dto.AgentPluginUpgradeReq) error {
401 agent, install, err := a.loadAgentAndInstall(req.AgentID)

Callers

nothing calls this directly

Calls 10

loadAgentAndInstallMethod · 0.95
resolvePluginMetaFunction · 0.85
uninstallOpenclawPluginFunction · 0.85
installOpenclawPluginFunction · 0.85
readOpenclawConfigFunction · 0.85
appendPluginAllowFunction · 0.85
writeOpenclawConfigRawFunction · 0.85
RunMethod · 0.65
AddSubTaskMethod · 0.45
ExecuteMethod · 0.45

Tested by

no test coverage detected