enhancement
major
minor
defect
critical
major
minor
major
#30253
tl-ai-core pulls the Playwright browsers (driver-bundle, 200 MB) into every application: browser tools move into the optional module tl-ai-browser
tl-ai-core 8.0.0-alpha12.819, application E-Home (haumacher/ehome #126).
tl-ai-core depends on com.microsoft.playwright:driver-bundle for its browser tools (group egress). An application that depends on tl-ai-core for the chat and grants no browser tool still ships the browsers: E-Home's war grew from 136 MB to 367 MB (with tl-chat and tl-ai-mcp-server; 164 MB without the bundle). For an application distributed as a Debian package to small home servers this is the dominant cost.
Expected: the browser tools are an optional module (or the dependency is optional), so that an application adds them when it grants them.
Workaround in E-Home: ehome/pom.xml excludes driver-bundle from tl-ai-core; the browser tools would fail when called, and nobody is granted them.
Solution
- New module tl-ai-browser (on tl-ai-core, package com.top_logic.tl.ai.browser) with the headless-browser tools web-browser.* (BrowserTool, BrowserToolsService, the browser sessions and their pool), the cookie pools (CookiePoolService, model module tl.ai.cookiepool with its table), their tests and the developer article ai/browser. It alone depends on Playwright.
- tl-ai-core no longer depends on Playwright. It keeps webFetch and webSearch, the egress proxy (FilteringProxy, now public API shared with the browser module), the browsing policies, the URL provenance checks and the screenshot storage.
- The skill TL_webAccess of tl-ai-core covers search and fetch only. tl-ai-browser adds the skill TL_webBrowser with the browser tools and gives it to the chat entry agent TL_SingleAgent. The tool labels of the browser tools come from the bundle tl-ai-browser.app-messages.
- The feature starter tl-starter-ai and the archetype do not include tl-ai-browser; an application that grants browser tools adds the dependency (article application-project). tl-ai-demo depends on it.
Migration
- An application that uses the browser tools (web-browser.*) or cookie pools adds the dependency com.top-logic:tl-ai-browser. An existing database is taken over on startup without further steps.
- An own agent that browses and names the skill TL_webAccess additionally names the skill TL_webBrowser.
- The classes moved to the package com.top_logic.tl.ai.browser (BrowserToolsService, BrowserTool, ...) and com.top_logic.tl.ai.browser.cookiepool (CookiePoolService); configuration and code referencing them by class name must be adapted, e.g. an override <config service-class="com.top_logic.tl.ai.browser.BrowserToolsService">.
- An application without tl-ai-browser whose database already contains cookie pools keeps the table CookiePool unused; the article ai/browser describes the migration that removes it.
- An exclusion of driver-bundle from tl-ai-core (workaround) can be removed.