assegaiphp/console
AssegaiPHP Console is a PHP package that provides a lightweight command-line layer for AssegaiPHP applications, with tools for defining console commands, parsing arguments and options, and handling formatted input/output so developers can build and run CLI tasks through a simple, framework-friendly...
site.min.js and editor.min.js separately, so public pages stop paying for editor-only component weight. This is a concrete, shippable performance decision rather than a refactor: groups are opt-in via assegai.json, existing single-bundle projects are unchanged..cache/assegai/groups/<name>/). Group isolation rules — no overlapping source membership, no cross-group .wc.ts imports, rejection of paths escaping the workspace — encode architectural boundaries as build-time errors instead of code-review conventions.Adopt when most of the following hold:
.wc.ts files, and the app — not the tool — decides which bundle each page loads.Look elsewhere when any of the following apply:
.wc.ts. Shared ordinary TypeScript and CSS dependencies are supported, so the constraint is on components, not utilities — but if your architecture assumes shared components, this is a blocker rather than a preference.For executives (one paragraph). Assegai Console 0.10.6 lets our PHP application build separate JavaScript bundles for separate parts of the product — public site, editor, admin — from one configuration file, instead of shipping one large bundle everywhere. That is a direct page-weight and load-time win on customer-facing pages, and it lets each surface ship independently. The upgrade is additive and opt-in: existing projects keep their current behavior with no migration, and there are no changes to request-time framework code. The main caveat is maturity — this is a pre-1.0 tool, and Windows developer machines are not covered by the vendor’s testing — so we should adopt it deliberately and pin the version rather than treat it as a settled platform bet.
For engineering leads. Three things matter. First, groups are a real architectural boundary: each group gets its own entry file, manifest, and esbuild dependency graph, builds are isolated so unselected groups’ artifacts are untouched, and invalid configurations — unknown groups, overlapping sources, conflicting output paths, paths escaping the workspace, cross-group component imports — fail the build rather than silently producing wrong output. Second, watch mode is now trustworthy: it detects additions, removals and renames including the first component in an absent directory, stays alive when empty, distinguishes unreadable directories from missing ones, updates per-group and root reload markers, supports --no-hot-reload, and coordinates child processes and locks so concurrent writes to the same group are prevented while different groups build in parallel. Membership polling is tied to the configured hot-reload interval; idle checks don’t read source contents or hash bundles. Third, the CLI is hardened for multi-project use: the executing Console’s classes remain authoritative after workspace autoloading, so older project-local installs can’t hijack extension discovery, and the entrypoint forwards the application’s return code when automatic exit is disabled.
Verification and residual risk to state plainly. CI passed on Ubuntu 24.04 with PHP 8.4.26 and 8.5.11: 233 passing tests, 1,073 assertions, one pre-existing skipped test, PHPStan level 8 clean, strict Composer validation passing. Regression coverage targets the exact behaviors above, including selected-group isolation, invalid ownership and paths, add/remove/rename handling, initially empty sources, CSS-only changes, reload markers, process teardown, exit statuses, and older workspace Console installs. Two honest gaps: the orchestration tests use a fake esbuild with real-esbuild group isolation verified only separately, and Windows is untested. Also note a behavioral change for existing watch users — empty watch sessions no longer exit immediately — which may affect scripts that relied on that termination. Recommended rollout: upgrade via assegai global update, confirm with assegai --version, run the existing single-bundle build to confirm no diff, then introduce one group behind the config flag and validate artifact inclusion in templates before splitting further.
How can I help you explore Laravel packages today?