Commit Graph

89 Commits

Author SHA1 Message Date
Felarof
696d520199 Revert "feat: integrate models.dev registry for model defaults (#425)"
This reverts commit ddc376a026.
2026-03-05 17:48:12 -08:00
Felarof
ddc376a026 feat: integrate models.dev registry for model defaults (#425)
* feat: integrate models.dev registry for auto-populated model defaults

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: fall back to upstream provider for model registry lookup

When the browseros meta-provider is used, the registry lookup now
also tries the upstream provider (e.g., openrouter, anthropic) so
that BrowserOS-hosted models get correct context window and image
support defaults.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add Object.hasOwn guards to prevent prototype chain lookup

Addresses Greptile review: bracket notation on the registry object
could return prototype-chain properties for keys like __proto__ or
constructor, bypassing the 404 guard in the route handler.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:27:14 -08:00
Nikhil
9fdb361d67 feat: build prod server resource artifact pipeline (#417)
* feat: build prod server resource artifacts with cloudflare r2

* fix: address PR review comments for prod_server_resources_cloudflare

* feat: fix prod server build setup and CLI ergonomics

* fix: prevent build env secret inlining and template fallback

* fix: read from fileenv

* feat: add ripgrep

* feat: upload prod artifacts to latest and version prefixes
2026-03-05 14:26:46 -08:00
Dani Akash
52f9dfb2e4 feat: soul and memory (#401)
* feat: install fuse.js

* feat: implement soul and basic memory system

* fix: memory recall

* fix: memory search pattern

* feat: create soul.md file progressively

* fix: soul vs core memory

* fix: provide a soul read tool

* feat: display soul on settings page

* feat: refresh soul document

* fix: chat mode avoids memory and soul tools

* fix: date construction on memory cleanup

* fix: atomicity of write operation

* chore: upgrade biome
2026-03-04 19:12:47 +05:30
Nikhil
14ab8fe97e feat: add new CDP tools and improve tool ergonomics (#396)
* feat: add new CDP tools for links, hidden pages/windows, show/move

- get_page_links: extract deduplicated links from a page via evaluate
- new_hidden_page: open a hidden tab for background automation
- create_hidden_window: create a hidden window for background automation
- show_page: restore a hidden page back into a visible window
- move_page: move a tab to a different window or position
- Default includeLinks to false in get_page_content

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: use AX tree for get_page_links, add tests, fix test scripts

- Refactor get_page_links to use accessibility tree instead of raw JS
  evaluate — more reliable for role="link" elements and shadow DOM
- Add extractLinkNodes() to snapshot.ts and getPageLinks() to browser.ts
- Add tests for get_page_links (constructed HTML with dedup/filtering),
  new_hidden_page, show_page, move_page, create_hidden_window
- Fix root package.json test scripts to match server's actual scripts
- Update CLAUDE.md test docs to reflect current structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:38:23 -08:00
Nikhil
899d322a8b feat: unified browseros-dev CLI for dev & test workflows (#389)
* feat: replace flaky TypeScript dev:watch with Go CLI (devwatch)

The Bun-based scripts/dev/start.ts orchestrator had fundamental issues with
WXT when launched via `bun run --filter` with cwd manipulation. This replaces
it with a Go CLI at tools/devwatch/ that provides:

- Process supervision with auto-restart on crash
- Colored log streaming with [tag] prefixes
- Automatic port discovery (--new flag)
- Fresh user-data directory creation
- Process group management for clean shutdown (SIGTERM → SIGKILL escalation)
- CDP readiness polling before starting the server

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: run agent codegen before wxt and add force-kill on double Ctrl+C

- Run graphql-codegen if generated/graphql/ doesn't exist, matching the
  agent's own `dev` script behavior
- Second Ctrl+C sends SIGKILL to all process groups and exits immediately,
  so you're never stuck in a restart loop

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add run.sh wrapper that checks for Go and prompts to install

If Go isn't installed, shows a clear message with install instructions
(brew install go / go.dev/dl). Also skips rebuilding if the binary
already exists and main.go hasn't changed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: show double Ctrl+C hint at startup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: swap ANSI escape codes for fatih/color

Adds proper TTY detection, NO_COLOR env var support, and cleaner
color API. Also improves help output with bold/dim styling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: restructure devwatch into browseros-dev CLI with cobra subcommands

Expands the single-file devwatch into a modular CLI with three subcommands:
- `watch` — dev environment with process supervision (port of devwatch)
- `test` — start test env, run bun test, clean up (replaces TS test helpers)
- `cleanup` — kill ports + remove orphaned temp dirs (replaces cleanup.sh)

Shared Go packages for browser lifecycle (CDP polling, arg building),
server health checks (health + extension status), and process management
(managed proc, port killing, streaming, monorepo root finding).

Fixes PR #389 feedback:
- Add timeout after SIGKILL in Stop() to prevent indefinite hang
- Fix run.sh freshness check to detect changes in all .go files
- Add double Ctrl+C force-kill to test command
- Guard test cleanup with sync.Once to prevent race condition

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: replace run.sh freshness logic with Makefile

Make handles timestamp-based dependency tracking natively. The Makefile
rebuilds only when any .go file, go.mod, or go.sum is newer than the
binary. run.sh just checks for Go, calls make, and execs the binary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 16:45:59 -08:00
Dani Akash
80fe2493e7 fix: resolve all bun audit vulnerabilities with package overrides (#338)
* fix: resolve all bun audit vulnerabilities with package overrides

Add overrides for 8 vulnerable transitive dependencies: qs, markdown-it,
lodash-es, @modelcontextprotocol/sdk, axios, diff, @isaacs/brace-expansion,
and hono. This resolves 11 security vulnerabilities including DoS, ReDoS,
prototype pollution, XSS, and data leak issues.

https://claude.ai/code/session_01D3vmc2S4564FJSFqsRaTfM

* fix: vulnerabilites

* fix: remove overrides

* fix: vulnerable versions

* fix: versions

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-02 13:30:14 +05:30
Nikhil
b83f50b8f6 feat: generate cdp types based on protocol" (#355)
* feat: gen cdp types

* feat: move apis to use typed cdp

* fix: lint errors on scripts/codegen

* fix: lint errors on scripts/codegen
2026-02-23 13:47:57 -08:00
Nikhil
81a6d20fe8 feat: cdp tools (#353)
* feat: unified CDP + controller tools architecture

Merge CDP and controller tools into a single Browser abstraction with
backend-agnostic tool definitions. Replaces old separate cdp/controller
tool registries with unified registry, adds new tools (bookmarks,
tab-groups, history, keyboard, mouse, snapshot, content-markdown).

* feat: fix bookmarks and history, move browseros-info tool

* chore: bump server version

* fix: increase console truncate limit

* fix: previous conversation fix

* chore: bump server version

* fix: tab-group cdp

* fix: update types based on pdl

* fix: enable tab grouping

* fix: prompt enable tab grouping

* chore: bump server version
2026-02-23 07:28:45 -08:00
Dani Akash
f4f92053f7 feat: enable posthog app connection support (#313)
* fix: dev scripts

* feat: setup posthog mcp

* feat: api auth UI

* chore: remove agent command

* feat: setup posthog connection

* fix: better error handling

* chore: refactor to use llm proxy

* feat: auto update authenticate status for posthog

* feat: integrate posthog to the app selector

* feat: update biome

* chore: update server restart

* chore: update codegen process

* feat: install klavis in server project

* feat: update posthog icon

* fix: updated review comment

* feat: address code reviews
2026-02-11 18:28:45 +05:30
Nikhil
24b46f664b feat: server port fixes (#286)
* feat: new start script with manual and watch mode

* fix: disable sentry in dev builds

* feat: remove bind with retry

* feat: verify port exists
2026-01-31 16:31:21 -08:00
Dani Akash
8639f2b20a feat: browseros API (#284)
* feat: created auth client

* feat: created login page for testing auth

* feat: setup logout page

* feat: setup graphql codegen

* feat: setup graphql + react query utils

* feat: setup queryprovider with localforage

* feat: created auth provider

* feat: update claude.md

* feat: documents for bulk conversation upload

* chore: install missing package

* fix: setup codegen to scan for .ts files

* chore: setup check conversation query

* feat: upload conversation by profileId

* chore: upload messages in batches

* feat: account for edge cases in conversation upload

* feat: delete uploaded conversations from localstorage

* feat: load conversation history from api

* feat: implement delete conversation using graphql

* feat: delete confirmation for conversation history

* fix: issue with clearing conversations after upload

* feat: implement pagination for graphql chat history

* chore: update CLAUDE.md

* chore: update claude.md

* feat: save conversations to server

* fix: handle streaming check on remote conversation save

* feat: restore conversation from graphql

* fix: timestamp issue on the chat history page

* feat: sync llm providers from background script

* feat: update llm providers on change via background script

* chore: added a try catch block

* feat: display incomplete providers in separate UI

* feat: delete provider on server when initiated by user

* feat: setup scheduled tasks storage to sync to graphql

* feat: auto run sync in background script

* fix: sync all keys of scheduled tasks based on updatedAt timestamp

* feat: added login dropdown on the sidebar

* feat: simplify sidenav header

* feat: update header design after login

* feat: setup profile page

* feat: added back button to profile page

* fix: scrollbar flash in profile page

* feat: finish login handshake

* feat: clear storage on logout

* fix: logout page style

* feat: added tooltip to encourage user to sign in

* feat: added back button to login page

* fix: upload logic for profile picture

* feat: account for profile name in sidebar branding

* chore: set file upload url from backend request

* chore: remove default placeholder from profile component

* chore: sync with main

* Revert "chore: sync with main"

This reverts commit 77e06b894ce30235d1bfa31c8e2699b34df423a5.

* Reapply "chore: sync with main"

This reverts commit dd921d97cc9794d1872e13689c881f68e4dfee47.

* chore: updated lock file

* fix: run codegen before build:ext

* fix: run codegen before build:gent

* fix: remove hardcoded localhost header in magic link

---------

Co-authored-by: Nikhil Sonti <nikhilsv92@gmail.com>
2026-01-30 23:33:57 +05:30
Felarof
38e2bd7e50 feat: created new Chat Mode pill and exclude tools when in chatMode (#263)
* feat: agent mode on or off

* fix: cleaner whitelist for chat mode

* fix: cleaner whitelist for chat mode

* feat: agent mode with tooltip

* feat: agent mode chat mode final UI

* feat: previous conversation history

* fix: re-enable the DELETE endpoint

* fix: make bun run start:server show lgos

* fix: minor text change

* fix: keep 16k context window size

* fix: use message ref to get access to full restored messages (when create prev conversation history)

* fix: don't run watchdog in dev-mode

* Revert "fix: re-enable the DELETE endpoint"

This reverts commit 9cbbbab6768c7c412c8f65bd88643e2856fa5169.

---------

Co-authored-by: Nikhil Sonti <nikhilsv92@gmail.com>
2026-01-21 13:04:22 -08:00
shivammittal274
37360b0ff9 fix: add timeout and window based mutex to improve speed (#260)
* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed

* fix: add timeout and window based mutex to improve speed
2026-01-21 23:59:42 +05:30
Dani Akash
8657146fb6 fix: reduce suspense boundary depth and improve background color speed (#259)
* fix: move suspense boundary closer to corresponding pages

* fix: pre-resolve the client via singleton to speed up the clientPromise

* feat: apply theme background faster with plain script

* chore: update biome version

* feat: make rpc client persist promise with useMemo and remove loading
text

* fix: replace dvh with vh

* fix: replace dvh with vh in create graph
2026-01-21 23:09:58 +05:30
Nikhil
826c6f6946 fix: shell error fix (#244)
* feat: move to bun plugin to intercept WASM

* feat: new build/server.ts with refactored

* fix: clean-up source map dirs before build

* fix: remove elide for build

* fix: clean-up source map ordering
2026-01-19 11:40:59 -08:00
Dani Akash
50f64a715b feat: workflow graph UI (#220)
* feat: custom node component

* feat: create resizable panels for graph ui

* feat: setup hono rpc on agent

* feat: created getClient util

* feat: created rpc client provider

* chore: reafctor agent sdk

* chore: created usechat hook

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* feat: graph chat component

* feat: integrate input field

* feat: make getActionForMessage optional

* feat: integrate chat messages ui

* feat: update graph canvas with latest message

* feat: support editing graph with new message

* feat: create chat test function

* fix: created chat test api integration

* chore: remove background window state

* chore: improve agent ui stream

* chore: print error

* feat: create workflow storage

* feat: created workflows screen on options page

* feat: added error handling to workflows chat

* chore: ignore graph code generation folder

* fix: provide a better header title name

* fix: buttons accessibility on graph canvas

* feat: improve test and save workflow button state

* chore: provide autofocus to the workflow header

* feat: setup save and edit options on the workflow

* feat: open the workflow in edit mode

* fix: use sentry to capture server exception

* feat: integrate run workflow using dialog box

* feat: display errors in the run dialog box

* fix: use rpc client to delete workflows

* feat: fix panel sizes on graph creation

* fix: provide suspense fallback boundary for the options page

* feat: auto fitview on graph updates

* fix: node colors in the graph

* chore: make minimap movable

* feat: provide styling to react flow controls

* fix: missing imports

* fix: pass personalization to workflow runs

* feat: provide back button in workflow page

* feat: added confirmation when leaving workflow page without saving

* feat: provide animation to nodes

* feat: autofit canvas to resizepanel size

* feat: added workflows to newtab page

* fix: typescript lint errors

* feat: enforce bun version

* fix: typecheck command

---------

Co-authored-by: shivammittal274 <mittal.shivam103@gmail.com>
2026-01-14 21:30:17 +05:30
Nikhil Sonti
c5f29c67f6 fix: add postinstall to build agent-sdk 2026-01-12 11:52:33 -08:00
shivammittal274
3546a125cb feat: code graph endpoint (#209)
* feat: added code and graph gen apis

* feat: added code and graph gen apis

* feat: added code and graph gen apis

* fix: abort execution fixed

* fix: added if abort execution null very edge case

* chore: added agent sdk stream in code execution stream

* chore: resolved comments

* ci: fix issue with typecheck action

* fix: remove llmconfig param

* chore: added codegen as env var only

* chore: refactor server rpc types (#210)

* chore: refactor server rpc types

* chore: refactor server rpc types

* chore: refactor server rpc types

---------

Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>
2026-01-12 11:31:55 -08:00
Nikhil
9854870291 feat: better dev workflow (#188)
* fix: controller-ext is built separately

* fix: remove un-used scripts in agent/

* fix: rename to assistant

* fix: add build scripts

* feat: new start:dev to start both

* fix: update gitignore

* feat: --new-ports support for dev:start

* feat: update start-all to support port and new data dir

* fix: add help insturctions for start:dev
2026-01-08 10:09:24 -08:00
shivammittal274
8b8c81eb74 chore: agent sdk release (#172)
* chore: agent sdk release:

* chore: agent sdk release

* chore: agent sdk release
2026-01-07 18:45:01 +05:30
Nikhil
afddda015a feat: fix imports to remove .js (#170)
* fix: remove all .js in imports

* fix: update claude mode to use right import

* fix: remove addition in main package.json
2026-01-06 10:54:26 -08:00
Dani Akash
86ec6eac28 ci: enable typecheck in code-quality workflow (#157)
* ci: enable typecheck in code-quality workflow

* chore: added typecheck to controller-ext
2026-01-05 18:58:05 +05:30
Felarof
39ce685443 fix: create env file per package (#141)
* feat: create .env per package

* chore: minor fix to gitignore

* fix: update CLA to use separate repo
2025-12-31 10:43:47 -08:00
Felarof
1044888d9a feat: fix mono repo setup (#139)
* chore: fix monorepo setup

1) use single .env.development file at the root

2) update package.json to contain commands to start server and agent

3) rename "Assistant" package name to "agent"

4) rename HTTP_MCP_PORT to SERVER_PORT

* chore: update README

* chore: update .env.example
2025-12-30 11:39:55 -08:00
Dani Akash
4eeb441e06 fix: lockfile issue with bun (#138)
* fix: lockfile issue with bun

* chore: delete unnecessary config files
2025-12-30 16:18:26 +05:30
Dani Akash
f5cba0c3eb fix: incorrect exports of shared package (#135)
* fix: incorrect exports of shared package

* fix: reference to shared directory
2025-12-29 12:39:34 +05:30
Nikhil
22fe4db2eb feat: upload sentry source maps (#129)
* feat: add sentry source maps

* feat: upload sourcemaps to sentry
2025-12-25 16:58:53 -08:00
Nikhil
999bde30df feat: update the version to be from apps/server and rename main package.json (#128) 2025-12-25 16:20:50 -08:00
Nikhil
803ea51dbf feat: fix tests and refactor (#125)
* fix: clean-up old docs

* feat: refactored test utils

* fix: clean-up dev scripts and move to scripts/dev

* fix: clean-up script

* fix: refactor tests into properly controller tests and cdp tests
2025-12-25 14:32:45 -08:00
Nikhil
3d5696be3e fix: lint errors (#115)
* fix: all biome lint errors

* fix: lefthook dev dependency
2025-12-23 10:12:16 -08:00
Dani Akash
038056161e feat: setup biome as the new linter (#114)
* feat: install biome

* chore: remove eslint

* chore: remove prettier

* chore: fix lint issues

* chore: added biome precommit hook
2025-12-23 21:58:41 +05:30
Dani Akash
0fc9741a5d refactor: streamline monorepo structure (#112)
* feat: refactor packages into single project

* feat: created apps directory

* chore: removed duplicate packages

* fix: delete package-lock.json

since project uses bun
2025-12-22 23:39:21 +05:30
shivammittal274
687d4d058c Fix: gemini pro thought signature fix (#111)
* fix: gemini pro thought signature fix

* fix: gemini pro thought signature fix

* fix: gemini pro
2025-12-20 08:17:42 -08:00
Nikhil Sonti
d88582c0fc chore: bump version 2025-12-19 12:44:52 -08:00
Nikhil Sonti
b8a552796a chore: bump version 2025-12-19 11:54:45 -08:00
Nikhil Sonti
9f1c79009d chore: bump version 2025-12-16 12:55:17 -08:00
Nikhil
21b03f45ae chore: clean-up codex stuff as it's no longer used (#96) 2025-12-16 10:53:41 -08:00
Nikhil
f888098d20 feat: add sentry and rename to telemetry from metrics (#94) 2025-12-16 09:33:02 -08:00
Nikhil Sonti
e638b1d315 chore: bump browseros-server version 2025-12-12 14:14:35 -08:00
Nikhil
c8ed2f7692 feat: fix config parsing (#91)
* feat: new config parser, unified to include cli, args and env

* fix: better SIGTERM handler
2025-12-12 14:13:27 -08:00
Nikhil Sonti
44e4519d4c chore: bump browseros-server version 2025-12-10 16:53:58 -08:00
Nikhil
a04c830b34 fix: move from toml to json config (#87)
* feat: move from TOML to JSON as hard to add TOML support in chromium

* fix: rename TOML to JSON in few places
2025-12-10 16:47:51 -08:00
Nikhil
3f6160df24 feat: support TOML base config in browseros-server (#86)
* feat: support reading config from TOML file

* fix: wip toml config

* refactor: one config, merged from args, config and config.toml example

* fix: update package.json to have bun start:with_toml

* docs: add quick toml explaination

* refactor: clean-up /init endpoint, we'll use TOML to pass config
2025-12-10 15:14:44 -08:00
Nikhil Sonti
637890eded chore: bump browseros-server version 2025-12-10 11:34:19 -08:00
Nikhil Sonti
9a3b9539df chore: bump browseros-server version 2025-12-09 17:38:22 -08:00
Nikhil
6a1f9fb926 feat: pre-commit hook for format (#81)
* fix: separate lint and format

* chore: run format on the repo

* feat: add pre-commit hook to run format

* test
2025-12-09 12:56:17 -08:00
Nikhil Sonti
f40644b850 chore: bump browseros-server version 2025-12-08 16:49:17 -08:00
Nikhil Sonti
a284773715 chore: bump browseros-server version 2025-12-06 14:38:46 -08:00
Nikhil Sonti
da4326e968 chore: increment version 2025-12-05 14:10:27 -08:00