Skip to content

v0.7.0 — web module

Choose a tag to compare

@bacnh85 bacnh85 released this 03 Oct 16:17
· 37 commits to main since this release
01b0c3f

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 global web settings section, read per tool call (saves apply live, no /reload); trusted project .pi/settings.json shadows 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.disabledTools with live re-activation; the module itself via ceulen.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).