Environment variables

Mayros कई स्रोतों से environment variables pull करता है। नियम मौजूदा मानों को कभी override न करें है।

Precedence (उच्चतम → निम्नतम)

  1. Process environment (जो Gateway process को पहले से parent shell/daemon से है)।
  2. .env current working directory में (dotenv डिफ़ॉल्ट; override नहीं करता)।
  3. Global .env ~/.mayros/.env पर (उर्फ $MAYROS_STATE_DIR/.env; override नहीं करता)।
  4. Config env block ~/.mayros/mayros.json में (केवल missing होने पर applied)।
  5. वैकल्पिक login-shell import (env.shellEnv.enabled या MAYROS_LOAD_SHELL_ENV=1), केवल missing expected keys के लिए applied।

यदि कॉन्फ़िगरेशन file पूरी तरह से missing है, तो step 4 skip है; shell import अभी भी enabled होने पर चलता है।

Config env block

Inline env vars सेट करने के दो equivalent तरीके (दोनों non-overriding हैं):

json5
{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: {
      GROQ_API_KEY: "gsk-...",
    },
  },
}

Shell env import

env.shellEnv आपका login shell चलाता है और केवल missing expected keys को import करता है:

json5
{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}

Env var equivalents:

  • MAYROS_LOAD_SHELL_ENV=1
  • MAYROS_SHELL_ENV_TIMEOUT_MS=15000

Config में Env var substitution

आप ${VAR_NAME} syntax का उपयोग करके कॉन्फ़िगरेशन string values में सीधे env vars का संदर्भ दे सकते हैं:

json5
{
  models: {
    providers: {
      "vercel-gateway": {
        apiKey: "${VERCEL_GATEWAY_API_KEY}",
      },
    },
  },
}

पूर्ण विवरण के लिए Configuration: Env var substitution देखें।

Path-संबंधित env vars

Variableउद्देश्य
MAYROS_HOMEसभी आंतरिक path resolution (~/.mayros/, agent dirs, sessions, credentials) के लिए उपयोग की गई home directory को override करें। Mayros को समर्पित service user के रूप में चलाते समय उपयोगी।
MAYROS_STATE_DIRState directory को override करें (डिफ़ॉल्ट ~/.mayros)।
MAYROS_CONFIG_PATHConfig file path को override करें (डिफ़ॉल्ट ~/.mayros/mayros.json)।

MAYROS_HOME

जब सेट हो, तो MAYROS_HOME सभी आंतरिक path resolution के लिए system home directory ($HOME / os.homedir()) को replace करता है। यह headless service accounts के लिए पूर्ण filesystem isolation को सक्षम करता है।

Precedence: MAYROS_HOME > $HOME > USERPROFILE > os.homedir()

उदाहरण (macOS LaunchDaemon):

xml
<key>EnvironmentVariables</key>
<dict>
  <key>MAYROS_HOME</key>
  <string>/Users/kira</string>
</dict>

MAYROS_HOME को tilde path (जैसे ~/svc) पर भी सेट किया जा सकता है, जो उपयोग से पहले $HOME का उपयोग करके expanded होता है।

संबंधित