bougie-scripts 0.24.0

Opt-in execution of root composer.json scripts: parse + classify entries (@php, @composer, @putenv, @alias, shell, callbacks) and dispatch lifecycle events. FS/PHP-agnostic — the host injects a ScriptContext. PHP-callback entries are warn-skipped except a host-registered native allowlist.
Documentation

Opt-in execution of root composer.json scripts.

Composer only ever runs scripts from the root package (never from dependencies), so they're the project author's own commands — not a supply-chain hazard. bougie keeps execution opt-in / off by default; this crate is the engine that runs them when the user turns it on.

The crate is intentionally FS/PHP-agnostic: it parses and classifies the scripts table into [Entry] values and [dispatch]es a named event, given a host-injected [ScriptContext] (resolved PHP binary, env, callback registry). Everything that needs to know about bougie's path/PHP/service-env machinery lives in the caller — mirroring how bougie-installers isolates declarative-plugin logic.

Scope: the non-internal entry forms (@php, @composer, @putenv, @<alias>, plain shell). PHP-callback entries (Class::method) reach into Composer internals in-process; bougie does not host them. They are warn-and-skipped, except for a small allowlist the host registers natively (e.g. Laravel's clearCompiled).