{"version":3,"file":"environment-mGLVOOPQ.mjs","names":[],"sources":["../src/types/environment.ts"],"sourcesContent":["/**\n * Cross-process environment variable names.\n *\n * DESIGN PATTERNS:\n * - Zero imports, so any process role can read these without pulling in runtime\n * - Names AND values are identical to the predecessor package on purpose\n *\n * WHY THE VALUES ARE UNCHANGED:\n * `PI_SUBAGENT_CHILD` and `PI_SUBAGENT_PARENT_SESSION` are how sibling\n * extensions decide whether they are running inside a subagent child. A child\n * reads whatever its spawning parent set, so during cutover a consumer that has\n * already moved to this package can still be spawned by a doom-pi-subagents\n * parent. Re-prefixing the values would make that child fail to recognise\n * itself. Filesystem roots are namespaced instead; those are what actually\n * needed isolating.\n *\n * AVOID:\n * - Re-prefixing these values; the isolation belongs in the temp roots\n * - Hardcoding any of these literals at a call site\n */\n\nexport {\n  SUBAGENT_CHILD_ENV,\n  SUBAGENT_PARENT_SESSION_ENV,\n  SUBAGENT_ROOT_SESSION_ENV,\n} from '@agimon-ai/doompi-core/childProcess';\n\nexport const SUBAGENT_RUN_ID_ENV = 'PI_SUBAGENT_RUN_ID';\nexport const SUBAGENT_CHILD_AGENT_ENV = 'PI_SUBAGENT_CHILD_AGENT';\nexport const SUBAGENT_CHILD_INDEX_ENV = 'PI_SUBAGENT_CHILD_INDEX';\nexport const SUBAGENT_FANOUT_CHILD_ENV = 'PI_SUBAGENT_FANOUT_CHILD';\nexport const SUBAGENT_PARENT_EVENT_SINK_ENV = 'PI_SUBAGENT_PARENT_EVENT_SINK';\nexport const SUBAGENT_PARENT_CONTROL_INBOX_ENV = 'PI_SUBAGENT_PARENT_CONTROL_INBOX';\nexport const SUBAGENT_PARENT_ROOT_RUN_ID_ENV = 'PI_SUBAGENT_PARENT_ROOT_RUN_ID';\nexport const SUBAGENT_PARENT_RUN_ID_ENV = 'PI_SUBAGENT_PARENT_RUN_ID';\nexport const SUBAGENT_PARENT_CHILD_INDEX_ENV = 'PI_SUBAGENT_PARENT_CHILD_INDEX';\nexport const SUBAGENT_PARENT_DEPTH_ENV = 'PI_SUBAGENT_PARENT_DEPTH';\nexport const SUBAGENT_PARENT_PATH_ENV = 'PI_SUBAGENT_PARENT_PATH';\nexport const SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV = 'PI_SUBAGENT_PARENT_CAPABILITY_TOKEN';\n/** Parent/workflow process ids a child Bash tool must never signal. */\nexport const SUBAGENT_PROTECTED_PARENT_PIDS_ENV = 'PI_SUBAGENT_PROTECTED_PARENT_PIDS';\n\n/** Decode the parent-owned PID allowlist without trusting malformed environment state. */\nexport function decodeProtectedParentProcessIds(encoded: string | undefined): number[] {\n  if (!encoded) return [];\n  try {\n    const parsed: unknown = JSON.parse(encoded);\n    if (!Array.isArray(parsed)) return [];\n    return [\n      ...new Set(\n        parsed.filter(\n          (value): value is number => typeof value === 'number' && Number.isSafeInteger(value) && value > 1,\n        ),\n      ),\n    ];\n  } catch {\n    return [];\n  }\n}\nexport const SUBAGENT_STEER_INBOX_ENV = 'PI_SUBAGENT_STEER_INBOX';\nexport const SUBAGENT_STEER_CAPABILITY_ENV = 'PI_SUBAGENT_STEER_CAPABILITY';\nexport const SUBAGENT_STEER_ACK_DIR_ENV = 'PI_SUBAGENT_STEER_ACK_DIR';\n\n/** The in-process SDK runtime. Not an external command; see `runtimeRegistry.ts`. */\nexport const PI_RUNTIME_NAME = 'pi';\n\n/**\n * Per-runtime binary override, e.g. `DOOM_TEAM_CLAUDE_BIN=/path/to/claude`.\n *\n * Uppercased and non-alphanumerics folded to `_` so a runtime name that is\n * legal in config is always a legal environment variable name.\n */\nexport function runtimeBinaryEnvVar(runtime: string): string {\n  return `DOOM_TEAM_${runtime.toUpperCase().replace(/[^A-Z0-9]+/g, '_')}_BIN`;\n}\n\nexport const SUBAGENT_CAPABILITY_CEILING_ENV = 'PI_SUBAGENT_CAPABILITY_CEILING_V1';\nexport const REQUIRED_CHILD_TOOLS_ENV = 'PI_SUBAGENT_REQUIRED_TOOLS';\nexport const MCP_DIRECT_CHILD_TOOLS_ENV = 'PI_SUBAGENT_MCP_DIRECT_TOOLS';\nexport const CHILD_TOOL_DIAGNOSTIC_PATH_ENV = 'PI_SUBAGENT_TOOL_DIAGNOSTIC_PATH';\nexport const TOOL_BUDGET_ENV = 'PI_SUBAGENT_TOOL_BUDGET';\nexport const TOOL_BUDGET_ZERO_AUTH_ENV = 'PI_SUBAGENT_TOOL_BUDGET_ZERO_AUTH';\nexport const MAX_SPAWNS_PER_SESSION_ENV = 'PI_SUBAGENT_MAX_SPAWNS_PER_SESSION';\nexport const STRUCTURED_OUTPUT_SCHEMA_ENV = 'PI_SUBAGENT_STRUCTURED_OUTPUT_SCHEMA';\nexport const STRUCTURED_OUTPUT_CAPTURE_ENV = 'PI_SUBAGENT_STRUCTURED_OUTPUT_CAPTURE';\nexport const INHERIT_PROJECT_CONTEXT_ENV = 'PI_SUBAGENT_INHERIT_PROJECT_CONTEXT';\nexport const INHERIT_SKILLS_ENV = 'PI_SUBAGENT_INHERIT_SKILLS';\n/**\n * Unprefixed on purpose: this one belongs to the Pi host, not to us. The child's\n * Pi runtime reads it directly, so the name is fixed by that contract and must\n * not be brought under the `PI_SUBAGENT_` namespace.\n */\nexport const MCP_DIRECT_TOOLS_ENV = 'MCP_DIRECT_TOOLS';\n/** Overrides where worktrees are created, for hosts whose tmpdir is unsuitable. */\nexport const WORKTREE_BASE_DIR_ENV = 'PI_SUBAGENTS_WORKTREE_DIR';\nexport const EXTRA_AGENT_DIRS_ENV = 'PI_SUBAGENT_EXTRA_AGENT_DIRS';\nexport const EXTRA_SKILL_DIRS_ENV = 'PI_SUBAGENT_EXTRA_SKILL_DIRS';\nexport const PI_SUBAGENT_PI_BINARY_ENV = 'PI_SUBAGENT_PI_BINARY';\nexport const PI_CODING_AGENT_PACKAGE_ROOT_ENV = 'PI_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT';\nexport const SUBAGENT_INTERCOM_SESSION_NAME_ENV = 'PI_SUBAGENT_INTERCOM_SESSION_NAME';\nexport const PI_INTERCOM_STABLE_ID_ENV = 'PI_INTERCOM_STABLE_ID';\nexport const PI_INTERCOM_SESSION_ID_ENV = 'PI_INTERCOM_SESSION_ID';\n\n/** Resolved child-safe DoomPi extensions inherited by SDK-backed agents. */\nexport const DOOMPI_CHILD_EXTENSIONS_ENV = 'DOOMPI_CHILD_EXTENSIONS';\n/** Resolved DoomPi domain skill directories inherited by SDK-backed agents. */\nexport const DOOMPI_SKILL_DIRS_ENV = 'DOOMPI_SKILL_DIRS';\n"],"mappings":";;AA2BA,MAAa,sBAAsB;AACnC,MAAa,2BAA2B;AACxC,MAAa,2BAA2B;AACxC,MAAa,4BAA4B;AACzC,MAAa,iCAAiC;AAC9C,MAAa,oCAAoC;AACjD,MAAa,kCAAkC;AAC/C,MAAa,6BAA6B;AAC1C,MAAa,kCAAkC;AAC/C,MAAa,4BAA4B;AACzC,MAAa,2BAA2B;AACxC,MAAa,uCAAuC;;AAEpD,MAAa,qCAAqC;;AAGlD,SAAgB,gCAAgC,SAAuC;CACrF,IAAI,CAAC,SAAS,OAAO,CAAC;CACtB,IAAI;EACF,MAAM,SAAkB,KAAK,MAAM,OAAO;EAC1C,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;EACpC,OAAO,CACL,GAAG,IAAI,IACL,OAAO,QACJ,UAA2B,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK,KAAK,QAAQ,CAClG,CACF,CACF;CACF,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AACA,MAAa,2BAA2B;AACxC,MAAa,gCAAgC;AAC7C,MAAa,6BAA6B;;AAG1C,MAAa,kBAAkB;;;;;;;AAQ/B,SAAgB,oBAAoB,SAAyB;CAC3D,OAAO,aAAa,QAAQ,YAAY,CAAC,CAAC,QAAQ,eAAe,GAAG,EAAE;AACxE;AAEA,MAAa,kCAAkC;AAC/C,MAAa,2BAA2B;AACxC,MAAa,6BAA6B;AAC1C,MAAa,iCAAiC;AAC9C,MAAa,kBAAkB;AAC/B,MAAa,4BAA4B;AACzC,MAAa,6BAA6B;AAC1C,MAAa,+BAA+B;AAC5C,MAAa,gCAAgC;AAC7C,MAAa,8BAA8B;AAC3C,MAAa,qBAAqB;;;;;;AAMlC,MAAa,uBAAuB;;AAEpC,MAAa,wBAAwB;AACrC,MAAa,uBAAuB;AACpC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,mCAAmC;AAChD,MAAa,qCAAqC;AAClD,MAAa,4BAA4B;AACzC,MAAa,6BAA6B;;AAG1C,MAAa,8BAA8B;;AAE3C,MAAa,wBAAwB"}