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

Function writeOpenclawConfig

agent/app/service/agents_utils.go:721–870  ·  view source on GitHub ↗
(confDir string, account *model.AgentAccount, modelName, token string, allowedOrigins []string, fallbacks []string)

Source from the content-addressed store, hash-verified

719}
720
721func writeOpenclawConfig(confDir string, account *model.AgentAccount, modelName, token string, allowedOrigins []string, fallbacks []string) error {
722 if strings.TrimSpace(confDir) == "" {
723 return fmt.Errorf("config dir is required")
724 }
725 if account == nil {
726 return fmt.Errorf("account is required")
727 }
728 if strings.TrimSpace(modelName) == "" {
729 return fmt.Errorf("model is required")
730 }
731 if strings.TrimSpace(token) == "" {
732 return fmt.Errorf("gateway token is required")
733 }
734 fileOp := files.NewFileOp()
735 if !fileOp.Stat(confDir) {
736 if err := fileOp.CreateDir(confDir, constant.DirPerm); err != nil {
737 return err
738 }
739 }
740 primaryModel, defaultsModels, models, err := buildOpenclawModelsFromAccount(account, modelName)
741 if err != nil {
742 return err
743 }
744 resolvedFallbacks, err := resolveOpenclawFallbackModels(account, modelName, fallbacks)
745 if err != nil {
746 return err
747 }
748
749 cfg := openclawConfig{
750 Gateway: gatewayConfig{
751 Mode: "local",
752 Bind: "lan",
753 Port: openclawGatewayPort,
754 Auth: gatewayAuth{
755 Mode: "token",
756 Token: token,
757 },
758 ControlUi: gatewayControlUi{
759 DangerouslyDisableDeviceAuth: true,
760 AllowedOrigins: append([]string(nil), allowedOrigins...),
761 },
762 TrustedProxies: []string{openclawTrustedProxyLoopback},
763 },
764 Agents: agentsConfig{
765 Defaults: agentDefaults{
766 UserTimezone: resolveServerTimezone(),
767 Model: modelRef{Primary: primaryModel, Fallbacks: resolvedFallbacks},
768 Models: defaultsModels,
769 },
770 },
771 Browser: browserConfig{
772 Enabled: true,
773 ExecutablePath: defaultBrowserExecutablePath,
774 Headless: true,
775 NoSandbox: true,
776 DefaultProfile: defaultBrowserProfile,
777 },
778 Tools: toolsConfig{

Callers 3

UpdateModelConfigMethod · 0.85
syncAgentsByAccountMethod · 0.85

Calls 13

StatMethod · 0.95
CreateDirMethod · 0.95
SaveFileMethod · 0.95
resolveServerTimezoneFunction · 0.85
readOpenclawConfigFunction · 0.85
structToMapFunction · 0.85
ensureChildMapFunction · 0.85
setSecurityConfigFunction · 0.85

Tested by

no test coverage detected