/** * host-env-specs — the CLI's environment-variable surface (launch, §5.12). * * The env surface is governed exactly like the config document: every variable is * declared as an immutable {@link EnvVarSpec} and read through the {@link EnvRegistry} * primitive, so it can be documented (the generated env-surface reference) and * deprecated coherently. The `env-via-registry` guardrail fails CI on any raw * `process.env` read outside the registry. * * This module owns the CLI-layer infra variables (telemetry + update-notifier) and * AGGREGATES the per-package specs (config, graph) plus the documented pre-scope * exceptions into one `describeHostEnv()` for the reference doc — the CLI is the * composition root, so it is the one place that can name every layer's specs. * * Pre-scope exceptions: the terminal-theme color vars (`@opensip-cli/cli-ui` has * no `core` dependency and resolves colors before any scope exists) and * `NODE_OPTIONS` / `OPENSIP_HEAP_ELEVATED` (the graph heap-preflight reads and * mutates them before any opensip module loads) are read raw at their sites. * They are declared here for documentation only and allow-listed by the * `env-via-registry` guardrail. */ import { EnvRegistry, type EnvVarSpec } from '@opensip-cli/core'; /** CLI-layer infra variables: OpenTelemetry + the update-notifier opt-outs. */ export declare const CLI_INFRA_ENV_SPECS: readonly EnvVarSpec[]; /** * The full CLI env surface = infra vars + the ten subprocess-correlation vars. * * The canonical names + docs for the ten `OPENSIP_*` correlation vars * (`OPENSIP_RUN_ID`, `OPENSIP_TOOL`, `OPENSIP_PARENT_COMMAND`, `OPENSIP_TRACE_ID`, * `OPENSIP_SHARD_ID`, `OPENSIP_WORKER_KIND`, `OPENSIP_REPO`, `OPENSIP_REPO_ID`, * `OPENSIP_TENANT_ID`, `OPENSIP_CHILD_INVOCATION_ID`) are OWNED by * `@opensip-cli/core`'s `run-correlation.ts` (`CORRELATION_ENV_SPECS`) — the single * source of truth that `correlationFromEnv()` also reads through. The host SURFACES * them here (for the env-surface reference doc + governance) by SPREADING the core * table; it never re-declares them. The `...CORRELATION_ENV_SPECS` spread — not this * comment — is what keeps the codec and the governed env surface in lockstep. * * `OPENSIP_API_KEY` is deliberately NOT part of this set — it lives in * `CONFIG_ENV_SPECS` (`global-config.ts`) and must never be conflated with * correlation. */ export declare const CLI_ENV_SPECS: readonly EnvVarSpec[]; /** The composed CLI-layer registry. Telemetry + update-notifier read through it. */ export declare const hostEnv: EnvRegistry; /** * Env vars a BUNDLED TOOL reads through its own `EnvRegistry`, documented here * at the composition root for the env-surface reference. * * The host does not statically import tool packages just to read env specs * (e.g. `GRAPH_ENV_SPECS` from `@opensip-cli/graph`) — that would couple the * host to a tool runtime and break the install-source-independence the * `no-bootstrap-tool-import` guardrail enforces. The tool keeps OWNING the * runtime read (its registry, its coercion); the composition root names the * variable for documentation only, the same way it already documents the * graph-related `NODE_OPTIONS` below. The `host-env-specs` drift test asserts * this list stays a superset of each bundled tool's actual specs (e.g. graph's * `GRAPH_ENV_SPECS`), so a tool adding an env var fails CI until it is * documented here. */ export declare const BUNDLED_TOOL_ENV_SPECS: readonly EnvVarSpec[]; /** * Pre-scope variables read raw at their sites (documented `env-via-registry` * allowance), declared here so the env-surface reference is complete. */ export declare const PRE_SCOPE_ENV_SPECS: readonly EnvVarSpec[]; /** * Every environment variable the platform reads, across all layers — the source * of truth for the generated env-surface reference (Phase 6). */ export declare function describeHostEnv(): readonly EnvVarSpec[]; //# sourceMappingURL=host-env-specs.d.ts.map