- Implemented in-house, zero-dependency utility modules in `pi-utils` covering DOM manipulation, markdown parsing, templating, browser automation helpers, and terminal buffers.
- Migrated packages across the repository to consume the new internal utilities and `omptype` schema validators instead of external dependencies.
- Removed multiple external runtime and development dependencies including Zod, Marked, LRU cache, Turndown, and Puppeteer browser packages.
Restored the regression test for browser-headers.ts lazy header-generator
init. The guard (lazy getHeaderGenerator + static Chrome fallback when
data_files are absent) landed in #5178 but its test was deleted as
redundant, leaving the fix undefended.
Without the guard a compiled single-file binary resolves header-generator
data_files to the build-machine node_modules path, which is absent at
runtime, so the module throws ENOENT at import time. This poisons the Bing
web_search provider import (undefined is not a constructor) and the plugin
extension loader (extension validation / omp plugin install).
The restored subprocess probe hides header-generator/data_files and asserts
the module imports cleanly and returns the fallback profile; verified it
fails against the pre-guard source.
Fixes#5256
Lazy-initialized the header-generator dependency so compiled runtimes without its fs-loaded data_files fall back to the bundled Chrome header profile instead of failing extension imports.
Added a regression test that hides header-generator data_files in a fresh Bun subprocess and verifies fallback headers are returned.
Fixes#5178
- Added six new search providers (Bing, Yahoo, Ecosia, Startpage, Mojeek, and Public) to expand coverage and parallel search capabilities.
- Implemented a unified `browserFetch` utility with headless-browser fallback and randomized Chrome profiles to improve scrape reliability.
- Integrated automated bot-defense mechanisms including CAPTCHA detection, ALTCHA proof-of-work, and homepage-token flows.
- Fixed hanging search CLI commands by ensuring proper closure of AuthStorage connections.