Repository navigation
v0.7.0 — web module
web: new module (port of @bacnh85/pi-web 0.17.8)
The 11 unified web tools: web_search (SearXNG -> Brave -> Firecrawl adaptive), web_extract (static JSDOM -> Firecrawl -> Crawl4AI -> agy), web_map, web_crawl, web_screenshot / web_pdf (Crawl4AI daemon, local headless Chrome for localhost/LAN/file URLs), web_interact (trusted CDP click/type/evaluate with device-metrics emulation), web_research (Gemini web ask / Deep Research), web_image (Gemini web -> ChatGPT web -> Z.ai GLM-Image -> custom), web_chat, web_status.
Ships the web skill; the backend-routing guidance injects only while a web_* tool is active.
- Config:
/config-> Tools -> Web - 16 rows over the globalwebsettings section, read per tool call (saves apply live, no/reload); trusted project.pi/settings.jsonshadows per field; env vars win over both. Secrets masked. Timeout rows are a closed set (15s/30s/1m/2m/5m) - values below 1000 ms would brick every Firecrawl/Crawl4AI-backed tool. - Dependencies: 3 real deps (jsdom, gemini-reverse + its hard dep axios - un-vendorable engines, fff-node class); readability/turndown/turndown-plugin-gfm vendored under
vendor/(turndown patched to jsdom's DOMParser). Heavy imports stay lazy. - Per-tool kill-switch: all 11 tools honor
ceulen.disabledToolswith live re-activation; the module itself viaceulen.disabled.
Verified: typecheck clean, 1854 tests pass; all 11 tools exercised live against real backends (Brave search, all three extract modes, map, crawl+poll, screenshot on both engines, PDF, CDP interaction, Gemini ask research, GLM-Image generation).