{"version":3,"sources":["../node_modules/dotenv/package.json","../node_modules/dotenv/lib/main.js","../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/index.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../src/cli.ts"],"names":["fs","path","os","process","styles","chalk","dotenv"],"mappings":"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","file":"cli.mjs","sourcesContent":["{\n  \"name\": \"dotenv\",\n  \"version\": \"16.6.1\",\n  \"description\": \"Loads environment variables from .env file\",\n  \"main\": \"lib/main.js\",\n  \"types\": \"lib/main.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./lib/main.d.ts\",\n      \"require\": \"./lib/main.js\",\n      \"default\": \"./lib/main.js\"\n    },\n    \"./config\": \"./config.js\",\n    \"./config.js\": \"./config.js\",\n    \"./lib/env-options\": \"./lib/env-options.js\",\n    \"./lib/env-options.js\": \"./lib/env-options.js\",\n    \"./lib/cli-options\": \"./lib/cli-options.js\",\n    \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n    \"./package.json\": \"./package.json\"\n  },\n  \"scripts\": {\n    \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n    \"lint\": \"standard\",\n    \"pretest\": \"npm run lint && npm run dts-check\",\n    \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n    \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov\",\n    \"prerelease\": \"npm test\",\n    \"release\": \"standard-version\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/motdotla/dotenv.git\"\n  },\n  \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n  \"funding\": \"https://dotenvx.com\",\n  \"keywords\": [\n    \"dotenv\",\n    \"env\",\n    \".env\",\n    \"environment\",\n    \"variables\",\n    \"config\",\n    \"settings\"\n  ],\n  \"readmeFilename\": \"README.md\",\n  \"license\": \"BSD-2-Clause\",\n  \"devDependencies\": {\n    \"@types/node\": \"^18.11.3\",\n    \"decache\": \"^4.6.2\",\n    \"sinon\": \"^14.0.1\",\n    \"standard\": \"^17.0.0\",\n    \"standard-version\": \"^9.5.0\",\n    \"tap\": \"^19.2.0\",\n    \"typescript\": \"^4.8.4\"\n  },\n  \"engines\": {\n    \"node\": \">=12\"\n  },\n  \"browser\": {\n    \"fs\": false\n  }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n  const obj = {}\n\n  // Convert buffer to string\n  let lines = src.toString()\n\n  // Convert line breaks to same format\n  lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n  let match\n  while ((match = LINE.exec(lines)) != null) {\n    const key = match[1]\n\n    // Default undefined or null to empty string\n    let value = (match[2] || '')\n\n    // Remove whitespace\n    value = value.trim()\n\n    // Check if double quoted\n    const maybeQuote = value[0]\n\n    // Remove surrounding quotes\n    value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n    // Expand newlines if double quoted\n    if (maybeQuote === '\"') {\n      value = value.replace(/\\\\n/g, '\\n')\n      value = value.replace(/\\\\r/g, '\\r')\n    }\n\n    // Add to object\n    obj[key] = value\n  }\n\n  return obj\n}\n\nfunction _parseVault (options) {\n  options = options || {}\n\n  const vaultPath = _vaultPath(options)\n  options.path = vaultPath // parse .env.vault\n  const result = DotenvModule.configDotenv(options)\n  if (!result.parsed) {\n    const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n    err.code = 'MISSING_DATA'\n    throw err\n  }\n\n  // handle scenario for comma separated keys - for use with key rotation\n  // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n  const keys = _dotenvKey(options).split(',')\n  const length = keys.length\n\n  let decrypted\n  for (let i = 0; i < length; i++) {\n    try {\n      // Get full key\n      const key = keys[i].trim()\n\n      // Get instructions for decrypt\n      const attrs = _instructions(result, key)\n\n      // Decrypt\n      decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n      break\n    } catch (error) {\n      // last key\n      if (i + 1 >= length) {\n        throw error\n      }\n      // try next key\n    }\n  }\n\n  // Parse decrypted .env string\n  return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n  console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n  console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n  console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n  // prioritize developer directly setting options.DOTENV_KEY\n  if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n    return options.DOTENV_KEY\n  }\n\n  // secondary infra already contains a DOTENV_KEY environment variable\n  if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n    return process.env.DOTENV_KEY\n  }\n\n  // fallback to empty string\n  return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n  // Parse DOTENV_KEY. Format is a URI\n  let uri\n  try {\n    uri = new URL(dotenvKey)\n  } catch (error) {\n    if (error.code === 'ERR_INVALID_URL') {\n      const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n      err.code = 'INVALID_DOTENV_KEY'\n      throw err\n    }\n\n    throw error\n  }\n\n  // Get decrypt key\n  const key = uri.password\n  if (!key) {\n    const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n    err.code = 'INVALID_DOTENV_KEY'\n    throw err\n  }\n\n  // Get environment\n  const environment = uri.searchParams.get('environment')\n  if (!environment) {\n    const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n    err.code = 'INVALID_DOTENV_KEY'\n    throw err\n  }\n\n  // Get ciphertext payload\n  const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n  const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n  if (!ciphertext) {\n    const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n    err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n    throw err\n  }\n\n  return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n  let possibleVaultPath = null\n\n  if (options && options.path && options.path.length > 0) {\n    if (Array.isArray(options.path)) {\n      for (const filepath of options.path) {\n        if (fs.existsSync(filepath)) {\n          possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n        }\n      }\n    } else {\n      possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n    }\n  } else {\n    possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n  }\n\n  if (fs.existsSync(possibleVaultPath)) {\n    return possibleVaultPath\n  }\n\n  return null\n}\n\nfunction _resolveHome (envPath) {\n  return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n  const debug = Boolean(options && options.debug)\n  const quiet = options && 'quiet' in options ? options.quiet : true\n\n  if (debug || !quiet) {\n    _log('Loading env from encrypted .env.vault')\n  }\n\n  const parsed = DotenvModule._parseVault(options)\n\n  let processEnv = process.env\n  if (options && options.processEnv != null) {\n    processEnv = options.processEnv\n  }\n\n  DotenvModule.populate(processEnv, parsed, options)\n\n  return { parsed }\n}\n\nfunction configDotenv (options) {\n  const dotenvPath = path.resolve(process.cwd(), '.env')\n  let encoding = 'utf8'\n  const debug = Boolean(options && options.debug)\n  const quiet = options && 'quiet' in options ? options.quiet : true\n\n  if (options && options.encoding) {\n    encoding = options.encoding\n  } else {\n    if (debug) {\n      _debug('No encoding is specified. UTF-8 is used by default')\n    }\n  }\n\n  let optionPaths = [dotenvPath] // default, look for .env\n  if (options && options.path) {\n    if (!Array.isArray(options.path)) {\n      optionPaths = [_resolveHome(options.path)]\n    } else {\n      optionPaths = [] // reset default\n      for (const filepath of options.path) {\n        optionPaths.push(_resolveHome(filepath))\n      }\n    }\n  }\n\n  // Build the parsed data in a temporary object (because we need to return it).  Once we have the final\n  // parsed data, we will combine it with process.env (or options.processEnv if provided).\n  let lastError\n  const parsedAll = {}\n  for (const path of optionPaths) {\n    try {\n      // Specifying an encoding returns a string instead of a buffer\n      const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n      DotenvModule.populate(parsedAll, parsed, options)\n    } catch (e) {\n      if (debug) {\n        _debug(`Failed to load ${path} ${e.message}`)\n      }\n      lastError = e\n    }\n  }\n\n  let processEnv = process.env\n  if (options && options.processEnv != null) {\n    processEnv = options.processEnv\n  }\n\n  DotenvModule.populate(processEnv, parsedAll, options)\n\n  if (debug || !quiet) {\n    const keysCount = Object.keys(parsedAll).length\n    const shortPaths = []\n    for (const filePath of optionPaths) {\n      try {\n        const relative = path.relative(process.cwd(), filePath)\n        shortPaths.push(relative)\n      } catch (e) {\n        if (debug) {\n          _debug(`Failed to load ${filePath} ${e.message}`)\n        }\n        lastError = e\n      }\n    }\n\n    _log(`injecting env (${keysCount}) from ${shortPaths.join(',')}`)\n  }\n\n  if (lastError) {\n    return { parsed: parsedAll, error: lastError }\n  } else {\n    return { parsed: parsedAll }\n  }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n  // fallback to original dotenv if DOTENV_KEY is not set\n  if (_dotenvKey(options).length === 0) {\n    return DotenvModule.configDotenv(options)\n  }\n\n  const vaultPath = _vaultPath(options)\n\n  // dotenvKey exists but .env.vault file does not exist\n  if (!vaultPath) {\n    _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n    return DotenvModule.configDotenv(options)\n  }\n\n  return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n  const key = Buffer.from(keyStr.slice(-64), 'hex')\n  let ciphertext = Buffer.from(encrypted, 'base64')\n\n  const nonce = ciphertext.subarray(0, 12)\n  const authTag = ciphertext.subarray(-16)\n  ciphertext = ciphertext.subarray(12, -16)\n\n  try {\n    const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n    aesgcm.setAuthTag(authTag)\n    return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n  } catch (error) {\n    const isRange = error instanceof RangeError\n    const invalidKeyLength = error.message === 'Invalid key length'\n    const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n    if (isRange || invalidKeyLength) {\n      const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n      err.code = 'INVALID_DOTENV_KEY'\n      throw err\n    } else if (decryptionFailed) {\n      const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n      err.code = 'DECRYPTION_FAILED'\n      throw err\n    } else {\n      throw error\n    }\n  }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n  const debug = Boolean(options && options.debug)\n  const override = Boolean(options && options.override)\n\n  if (typeof parsed !== 'object') {\n    const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n    err.code = 'OBJECT_REQUIRED'\n    throw err\n  }\n\n  // Set process.env\n  for (const key of Object.keys(parsed)) {\n    if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n      if (override === true) {\n        processEnv[key] = parsed[key]\n      }\n\n      if (debug) {\n        if (override === true) {\n          _debug(`\"${key}\" is already defined and WAS overwritten`)\n        } else {\n          _debug(`\"${key}\" is already defined and was NOT overwritten`)\n        }\n      }\n    } else {\n      processEnv[key] = parsed[key]\n    }\n  }\n}\n\nconst DotenvModule = {\n  configDotenv,\n  _configVault,\n  _parseVault,\n  config,\n  decrypt,\n  parse,\n  populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","#!/usr/bin/env node\n\n/**\n * Sheesh Agent CLI\n * Command line interface for running AI agents\n */\n\nimport { Command } from 'commander';\nimport { spawn, ChildProcess } from 'child_process';\nimport path from 'path';\nimport fs from 'fs';\nimport chalk from 'chalk';\nimport dotenv from 'dotenv';\n\n// Load environment variables\ndotenv.config();\n\nconst program = new Command();\n\nprogram\n  .name('sheesh-agent')\n  .description('AI Agent Framework with real-time broadcasting')\n  .version('1.2.0');\n\nprogram\n  .command('start <agent-file>')\n  .description('Start an AI agent')\n  .option('-a, --admin', 'Start admin panel alongside agent')\n  .option('-p, --admin-port <port>', 'Admin panel port', '8080')\n  .option('--no-build', 'Skip building the framework')\n  .action(async (agentFile, options) => {\n    console.log(chalk.cyan.bold('\\n🚀 Starting Sheesh Agent\\n'));\n\n    // Check if agent file exists\n    const agentPath = path.resolve(agentFile);\n    if (!fs.existsSync(agentPath)) {\n      console.error(chalk.red(`❌ Agent file not found: ${agentPath}`));\n      process.exit(1);\n    }\n\n    // Build framework if needed\n    if (options.build !== false) {\n      console.log(chalk.yellow('📦 Building framework...'));\n      await runCommand('npm run build', process.cwd());\n    }\n\n    const processes: ChildProcess[] = [];\n\n    // Start admin panel if requested\n    if (options.admin) {\n      console.log(chalk.yellow(`\\n📊 Starting admin panel on port ${options.adminPort}...`));\n      const adminPath = path.join(__dirname, '..', 'src', 'admin');\n      \n      // Install admin dependencies if needed\n      if (!fs.existsSync(path.join(adminPath, 'node_modules'))) {\n        console.log(chalk.dim('Installing admin dependencies...'));\n        await runCommand('npm install', adminPath);\n      }\n\n      const adminProcess = spawn('npm', ['start'], {\n        cwd: adminPath,\n        env: { ...process.env, PORT: options.adminPort },\n        stdio: 'inherit'\n      });\n      \n      processes.push(adminProcess);\n      \n      console.log(chalk.green(`✓ Admin panel: http://localhost:${options.adminPort}`));\n      console.log(chalk.dim(`  Token: ${process.env.ADMIN_TOKEN || 'Check your .env file'}\\n`));\n    }\n\n    // Start the agent\n    console.log(chalk.yellow('🤖 Starting agent...'));\n    const agentProcess = spawn('node', [agentPath], {\n      stdio: 'inherit',\n      env: process.env\n    });\n    \n    processes.push(agentProcess);\n\n    // Handle shutdown\n    const cleanup = () => {\n      console.log(chalk.yellow('\\n🛑 Shutting down...'));\n      processes.forEach(proc => {\n        try {\n          proc.kill('SIGTERM');\n        } catch (e) {\n          // Process might already be dead\n        }\n      });\n      process.exit(0);\n    };\n\n    process.on('SIGINT', cleanup);\n    process.on('SIGTERM', cleanup);\n\n    // Wait for processes\n    agentProcess.on('exit', (code) => {\n      console.log(chalk.yellow(`\\nAgent exited with code ${code}`));\n      cleanup();\n    });\n  });\n\nprogram\n  .command('build')\n  .description('Build the framework')\n  .action(async () => {\n    console.log(chalk.yellow('📦 Building framework...'));\n    await runCommand('npm run build', process.cwd());\n    console.log(chalk.green('✓ Build complete'));\n  });\n\nprogram\n  .command('admin')\n  .description('Start only the admin panel')\n  .option('-p, --port <port>', 'Port to run on', '8080')\n  .action(async (options) => {\n    console.log(chalk.cyan.bold('\\n📊 Starting Admin Panel\\n'));\n    \n    const adminPath = path.join(__dirname, '..', 'src', 'admin');\n    \n    // Install dependencies if needed\n    if (!fs.existsSync(path.join(adminPath, 'node_modules'))) {\n      console.log(chalk.dim('Installing admin dependencies...'));\n      await runCommand('npm install', adminPath);\n    }\n\n    console.log(chalk.green(`Admin panel: http://localhost:${options.port}`));\n    console.log(chalk.dim(`Token: ${process.env.ADMIN_TOKEN || 'Check your .env file'}\\n`));\n\n    const adminProcess = spawn('npm', ['start'], {\n      cwd: adminPath,\n      env: { ...process.env, PORT: options.port },\n      stdio: 'inherit'\n    });\n\n    adminProcess.on('exit', (code) => {\n      console.log(chalk.yellow(`\\nAdmin panel exited with code ${code}`));\n      process.exit(code);\n    });\n  });\n\nprogram\n  .command('init')\n  .description('Initialize a new agent project')\n  .action(() => {\n    console.log(chalk.cyan.bold('\\n🎉 Initializing new Sheesh agent project\\n'));\n    \n    // Copy .env.example to .env if it doesn't exist\n    if (!fs.existsSync('.env')) {\n      const envExample = path.join(__dirname, '..', '.env.example');\n      if (fs.existsSync(envExample)) {\n        fs.copyFileSync(envExample, '.env');\n        console.log(chalk.green('✓ Created .env file'));\n        console.log(chalk.yellow('  Please edit .env and add your API keys'));\n      }\n    }\n\n    // Create example agent if it doesn't exist\n    const exampleAgent = `import { AgentController } from '@phantasy/sheesh-agent';\nimport { createSheeshPlugin } from '@phantasy/sheesh-agent/plugins/sheesh';\nimport { MahoText } from '@phantasy/sheesh-agent/providers/text/maho';\nimport dotenv from 'dotenv';\n\ndotenv.config();\n\nasync function startAgent() {\n  // Initialize provider\n  const textProvider = new MahoText();\n  await textProvider.initialize({\n    apiKey: process.env.MAHO_API_KEY || process.env.OPENAI_API_KEY,\n    model: 'gpt-3.5-turbo'\n  });\n\n  // Create controller\n  const controller = new AgentController({\n    providers: { text: textProvider },\n    personality: {\n      name: 'MyAgent',\n      traits: ['helpful', 'friendly'],\n      tone: 'casual'\n    }\n  });\n\n  // Create plugin\n  const plugin = createSheeshPlugin({\n    partyKitUrl: process.env.PARTYKIT_URL || 'ws://localhost:1999',\n    roomId: 'my-room',\n    agentId: 'my-agent-001',\n    agentName: 'MyAgent',\n    onUserMessage: async (userId, message) => {\n      const response = await controller.processUserMessage(userId, message);\n      plugin.broadcastResponse(response);\n    }\n  });\n\n  // Initialize and connect\n  await plugin.initialize();\n  console.log('🚀 Agent is online and broadcasting!');\n}\n\nstartAgent().catch(console.error);\n`;\n\n    if (!fs.existsSync('my-agent.js')) {\n      fs.writeFileSync('my-agent.js', exampleAgent);\n      console.log(chalk.green('✓ Created example agent: my-agent.js'));\n    }\n\n    console.log(chalk.cyan('\\nNext steps:'));\n    console.log('1. Edit .env and add your API keys');\n    console.log('2. Customize my-agent.js');\n    console.log('3. Run: sheesh-agent start my-agent.js --admin');\n    console.log('   Or: sheesh start my-agent.js --admin');\n  });\n\n// Helper function\nasync function runCommand(command: string, cwd: string): Promise<void> {\n  return new Promise<void>((resolve, reject) => {\n    const proc = spawn(command, {\n      shell: true,\n      cwd,\n      stdio: 'inherit'\n    });\n    \n    proc.on('exit', (code) => {\n      if (code === 0) {\n        resolve();\n      } else {\n        reject(new Error(`Command failed with code ${code}`));\n      }\n    });\n  });\n}\n\nprogram.parse();"]}