(containerName, pluginType string)
| 1382 | } |
| 1383 | |
| 1384 | func loadOpenclawPluginLatestVersion(containerName, pluginType string) (string, error) { |
| 1385 | spec, _, err := resolvePluginMeta(pluginType) |
| 1386 | if err != nil { |
| 1387 | return "", err |
| 1388 | } |
| 1389 | output, err := cmd.RunDockerExecWithStdout(20*time.Second, containerName, "npm", "view", spec, "version", "--json") |
| 1390 | if err != nil { |
| 1391 | return "", err |
| 1392 | } |
| 1393 | var version string |
| 1394 | if err := json.Unmarshal([]byte(strings.TrimSpace(output)), &version); err == nil { |
| 1395 | return version, nil |
| 1396 | } |
| 1397 | return strings.Trim(strings.TrimSpace(output), `"`), nil |
| 1398 | } |
| 1399 | |
| 1400 | func resolveOpenclawPluginPackagePath(installPath, pluginType string) (string, error) { |
| 1401 | _, pluginID, err := resolvePluginMeta(pluginType) |
no test coverage detected