The AITURK Chrome extension now registers the user's Chrome as the desktop backend's browser controller, the way the ChatGPT extension lets its agent work in the user's browser. The agent's existing browser tools (navigate, snapshot, click, type, scroll, back, press, get_images, vision) run in its own background tabs grouped as "AITURK", or a tab the user hands over. Backend: a local desktop lane in the browser-control broker. One controller registered from the loopback desktop transport is offered to every desktop session as a lane template; each session still gets its own exact scope on first use. The lane has its own switch (browser.extension_control.local_desktop, on by default); with no extension registered, or after it disconnects, the normal browser backend runs unchanged. browser_vision turns the extension's capture into the usual native/auxiliary vision result. Bridge: forwards controller commands only to a connection that registered, refuses unknown or oversized commands, relays results. Extension: service-worker controller with its own native connection, trusted chrome.debugger input (press/release only: a hover move waits 5 s on background tabs), refusal of password and payment-card fields and of browser, extension, file and Web Store pages, panel switch, Stop, tab hand-over, recent actions, Alt+Shift+A and right-click "send to AITURK". Cancelling Chrome's debugging bar stops the agent. Existing panel flows and privacy rules are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
81 lines
3.8 KiB
Markdown
81 lines
3.8 KiB
Markdown
# AITURK Chrome beta
|
|
|
|
Windows / Chrome MV3 side panel for existing local AITURK IDE conversations.
|
|
Requires AITURK IDE 1.0.0-beta.9 or later (agent browser control: 1.0.0-beta.42); see `KURULUM.txt` for Turkish setup.
|
|
|
|
The extension talks only to `online.turkservis.aiturk` using Chrome native
|
|
messaging. The per-user .NET Framework host authenticates to Electron's random
|
|
named pipe with a separate capability from the user-local discovery file.
|
|
Electron retains the gateway token, allows only six semantic operations and
|
|
reuses the existing local backend. It resumes the stored conversation, maps its
|
|
runtime identity, then submits only the new prompt. No parallel agent backend,
|
|
history reconstruction, model API key in the browser or telemetry is involved.
|
|
|
|
Only the active local profile is supported. The list searches titles among
|
|
the most recent 200 desktop sessions (two API pages of at most 100, filtered
|
|
server-side before pagination). The transcript shows the last
|
|
40 records, with up to 8,000 characters per visible message; the model's existing
|
|
context is not truncated by this display policy. Approvals and clarifications
|
|
remain in the IDE. A backend event is stamped once and delivered to every
|
|
attached viewer so the desktop can still show and answer these requests.
|
|
|
|
## Agent browser control
|
|
|
|
The service worker keeps its own native connection and registers this Chrome
|
|
with the IDE backend as the local desktop browser controller
|
|
(`browser.controller.local.*`, see the API server docs). The IDE agent's
|
|
existing `browser_*` tools (navigate, snapshot, click, type, scroll, back,
|
|
press, get_images, vision) then run here, in agent tabs grouped as "AITURK"
|
|
or a tab the user hands over; when the switch is off or Chrome is closed the
|
|
agent keeps its normal browser. Clicks and key presses use trusted
|
|
`chrome.debugger` input; password and payment-card fields are refused;
|
|
chrome://, extension, file and Web Store pages are refused. Cancelling
|
|
Chrome's debugging bar, the panel's Stop button or the switch turns control
|
|
off and cancels pending commands.
|
|
|
|
## Build and verification
|
|
|
|
From the repository root, on Windows:
|
|
|
|
```powershell
|
|
./scripts/build-chrome.ps1 -OutputDirectory C:/path/to/new-output-directory
|
|
$env:AITURK_TEST_NATIVE_HOST = 'C:/path/printed/by/build/AITURK Chrome Kur.exe'
|
|
node --test apps/chrome/tests/bridge.test.mjs
|
|
```
|
|
|
|
The build uses the Windows .NET Framework C# compiler, not a downloaded binary.
|
|
`AITURK_TEST_NATIVE_HOST` enables the real framing / named-pipe / HTTP / WebSocket
|
|
integration test against a disposable fixture, without installing registry
|
|
entries or invoking a paid model. Without it the native host test is skipped.
|
|
|
|
UI tests require the existing desktop workspace's jsdom dependency:
|
|
|
|
```powershell
|
|
npm ci --workspace apps/desktop --include-workspace-root
|
|
node --test apps/chrome/tests/panel.test.mjs
|
|
node --test apps/chrome/tests/agent.test.mjs
|
|
```
|
|
|
|
Exercise the production FastAPI session router and real temporary SQLite stores
|
|
with the JS bridge (no model requests or user data):
|
|
|
|
```powershell
|
|
$env:AITURK_TEST_PYTHON = 'C:/path/to/python-with-hermes-dependencies.exe'
|
|
node --test apps/chrome/tests/sessions-api.test.mjs
|
|
```
|
|
|
|
This contract test reproduces the original 422 for an oversized page, then
|
|
verifies 200 desktop conversations across two valid pages, profile isolation,
|
|
short/empty lists, archived/empty/cron exclusion and bounded pagination.
|
|
|
|
Run backend fan-out and replay tests with the canonical hermetic runner:
|
|
|
|
```bash
|
|
scripts/run_tests.sh -j 1 --paths tests/tui_gateway/test_chrome_viewer_fanout.py:tests/test_tui_gateway_event_replay.py
|
|
```
|
|
|
|
Publish an IDE installer from the same clean commit (including the backend
|
|
change), the Chrome ZIP and their SHA-256 checksums together. Update the download
|
|
page only after the immutable release assets are available. This is an unsigned
|
|
developer-mode beta, not a Chrome Web Store or signed Windows release.
|