//! Provider identity and skill-directory resolution for the binary. //! //! The JS scripts learn their provider at build time (`lib/provider.mjs`, //! rewritten per harness) and find `../reference/` and `../SKILL.md` relative //! to their own file. One binary serves every harness, so both are resolved //! at run time: //! //! - **Skill dir**: `IMPECCABLE_SKILL_DIR` when set; otherwise walk up from the //! executable's path (the binary ships at `/scripts/bin//` or //! is launched via `/scripts/impeccable`) until a directory holding //! `reference/ios.md` is found. `None` when neither works (source checkouts //! running `target/debug/impeccable` need the env var). //! - **Provider id**: `IMPECCABLE_PROVIDER_ID` when set; otherwise derived from //! the skill dir's harness folder (`/.codex/skills/impeccable` -> //! `codex`); otherwise `source`, exactly what the JS reads in a source //! checkout. The command prefix is `$` for `codex`, `/` for everything else. //! - **Self command**: the text a directive prints where the JS printed //! `node /