mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 14:16:28 +03:00
The in-page bundle, the extension pieces, the registry JSON and the wasm-pack call were reachable only through `cargo xtask bundle`, which read `browser-bundle/*.js` from the repo root. A downstream crate that links impeccable-core + impeccable-wasm with its own rule pack had to copy the page JS to produce a detector bundle for its module. They move to `impeccable-bundle` (crates/bundle), which embeds every `browser-bundle/*.js` with `include_str!` and exposes `in_page_bundle`, `extension_pieces`, `registry_json`, `check_capture_contract` and `wasm_pack_build`. Nothing writes files or exits the process; the caller places the bytes. `registry_json` now reads `all_antipatterns()`, so an installed pack's rows land in `antipatterns.json` too (no built-in change). xtask becomes the workspace's caller and writes the same files to the same places; `cargo xtask bundle` is byte-identical, tracked live asset included. `IMPECCABLE_BUNDLE_SKIP_WASM_PACK` is the skip switch's new name, the old `IMPECCABLE_XTASK_SKIP_WASM_PACK` still works. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vau2X53xGTjjTCXWMVBoNY
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
# The impeccable runtime: one Cargo workspace next to the skill it powers.
|
|
# `cargo build --release -p impeccable` produces the engine binary the launcher
|
|
# (skill/scripts/impeccable) runs. See docs/ENGINE.md.
|
|
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/*"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[workspace.dependencies]
|
|
impeccable-foundation = { path = "crates/foundation" }
|
|
impeccable-common = { path = "crates/common" }
|
|
impeccable-core = { path = "crates/core" }
|
|
impeccable-detect = { path = "crates/detect" }
|
|
impeccable-html = { path = "crates/html" }
|
|
impeccable-browser = { path = "crates/browser" }
|
|
impeccable-live = { path = "crates/live" }
|
|
impeccable-context = { path = "crates/context" }
|
|
impeccable-hook = { path = "crates/hook" }
|
|
impeccable-comp = { path = "crates/comp" }
|
|
impeccable-comp-verbs = { path = "crates/comp-verbs" }
|
|
impeccable-bundle = { path = "crates/bundle" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1", features = ["preserve_order"] }
|
|
thiserror = "2"
|
|
regex = "1"
|
|
once_cell = "1"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|