Commit Graph

66 Commits

Author SHA1 Message Date
Nikhil Sonti
385cf03227 chore: bump server version 2026-03-10 18:19:21 -07:00
Nikhil Sonti
2477063673 chore: bump server version 2026-03-10 15:08:17 -07:00
Nikhil Sonti
a2eb965759 chore: Merge branch 'main' of https://github.com/browseros-ai/BrowserOS-agent 2026-03-10 07:50:11 -07:00
shivammittal274
b6b45404ee feat: add agent skills system with catalog, loader, and UI (#450)
* feat: add agent skills system with catalog, loader, and UI

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

* fix: return 500 for server errors in PUT/DELETE skill routes

Previously both handlers returned 404 for all errors, masking filesystem
failures (disk full, permission denied) as "not found". Now only
"not found" errors return 404; everything else returns 500.

* fix: align SKILL.md format with agentskills.io spec

- Move `enabled` and `version` into `metadata` field (spec only allows
  name, description, license, compatibility, metadata, allowed-tools)
- Frontmatter `name` now matches directory name (lowercase kebab-case)
- Human-readable name stored in `metadata.display-name`
- Add index signature to SkillMetadata for arbitrary string keys
- Validate frontmatter with type guard in getSkill (remove unsafe cast)
- updateSkill now preserves existing frontmatter fields (license, etc.)
- Tighten buildSkillMd param from Record<string, unknown> to SkillFrontmatter

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:24:05 +05:30
Nikhil Sonti
ca777dd2fd chore: bump server version 2026-03-09 16:25:43 -07:00
Nikhil Sonti
09bd10cb56 chore: bump server version 2026-03-09 12:04:20 -07:00
Nikhil
2e79933cae refactor: flatten server agent directory (#435) 2026-03-06 16:07:14 -08:00
Nikhil Sonti
7dbf645457 chore: bump server version 2026-03-06 11:37:00 -08:00
Nikhil Sonti
3477772e4e chore: bump server version 2026-03-05 19:52:45 -08:00
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
Nikhil
e37d19da51 feat: add structured MCP tool outputs and schemas (#420)
* feat: add structured MCP outputs for browser tools

* fix: address PR review comments for mcp_structured_content
2026-03-05 13:19:01 -08:00
shivammittal274
fb58a6ee1c feat: expose Klavis MCP tools to external MCP clients (#411)
* feat: expose Klavis MCP tools to external MCP clients

Connect to Klavis Strata at server startup and register discovered tools
on each per-request McpServer instance. This lets external MCP clients
(Claude Code, Gemini CLI) access Klavis-proxied integrations (Gmail,
Slack, GitHub, etc.) alongside browser tools.

- Add register-klavis-mcp.ts with connectKlavisProxy() and registerKlavisTools()
- Wire KlavisProxyHandle through server.ts -> mcp routes -> mcp-server
- Use structured logging and proper type imports

* fix: forward Klavis tool schemas and add shutdown cleanup

- Use zod-from-json-schema to convert Strata's JSON Schema to Zod,
  so MCP clients see proper parameter names, types, and required fields
- Close Klavis proxy transport on server shutdown
- Move per-request Klavis tool registration logging to debug level
- Use proper type imports instead of inline import() types
- Fix connectKlavisProxy return type (never returns null)

* fix: add timeout to Klavis MCP connect/listTools and log shutdown errors

* fix: clear timeout timer and pre-compute Klavis tool schemas at startup

* fix: use client.close() instead of transport.close() for proper cleanup
2026-03-06 00:04:57 +05:30
Nikhil
a91bef1cd1 feat: remove legacy gemini agent and provider adapter (#415)
* feat: remove legacy gemini agent and provider adapter

* fix: remove redundant run graph schema refine
2026-03-05 10:34:43 -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 Sonti
d4447adf65 chore: bump server version 2026-03-03 12:01:14 -08:00
Nikhil Sonti
54f7e90a61 chore: bump server version 2026-03-02 15:23:08 -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
91cb0300d4 fix: make CDP discovery resilient on localhost-only setups (#378)
* chore: bump server version

* feat: add loopback fallback for cdp discovery
2026-02-28 13:56:56 -08:00
Nikhil Sonti
3cf222fb36 chore: bump server 2026-02-26 19:23:14 -08:00
Nikhil Sonti
f9fb2f8a02 chore: bump server version 2026-02-26 18:23:36 -08:00
Nikhil
1f5dcba976 chore: bump server version (#368) 2026-02-26 15:08:28 -08:00
Nikhil
19c4175631 feat: replace pi-mono filesystem tools with native implementation (#366)
* feat: replace pi-mono filesystem tools with native Bun/Node.js implementation

Remove @mariozechner/pi-coding-agent and @mariozechner/pi-agent-core
dependencies that caused bun compile issues (tree traversal, package.json
resolution). Reimplement all 7 filesystem tools (read, write, edit, bash,
grep, find, ls) using only Bun and Node.js built-in libraries.

- No external binary dependencies (no ripgrep, fd, etc.)
- Cross-platform: Linux, macOS, Windows
- 107 tests covering all tools and utilities
- Pure JS grep/find using Bun.Glob and async directory walking
* fix: add explicit ENOENT handling in grep tool stat() call
2026-02-26 14:56:25 -08:00
Nikhil Sonti
46674fb952 chore: bump server version 2026-02-23 16:25:37 -08:00
Nikhil
cb8aa6c60e feat: fix new cdp tests for tools (#358)
* feat: new tools tests

* fix: lint warnings by disabling or TODO

* fix: minore update to branch cleaner
2026-02-23 16:08:34 -08:00
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
Dani Akash
16eaa90932 feat: ToolLoopAgent (#354)
* fix: lint issues

* chore: upgrade ai sdk

* fix: typescript errors

* feat: created tool loop agent route

* feat: session store

* feat: agent compaction logic

* feat: make chat use the new endpoint

* chore: pulled main

* chore: refactor chat v2 route with toolloop agent (#348)

* chore: refactor chat v2 route with toolloop agent

* refactor: move agent runtime files into agent/tool-loop module

---------

Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>

* feat: added support for filesystem tools (#352)

* feat: tool adapter

* chore: error handling and log metrics

* fix: tool adapter format

* feat: install pi agent

* feat: setup filesystem tools

* fix: types in pi-tool-adapter

* feat: update adapter for new cdp tools

* chore: use old chat endpoint

* chore: eliminate dead code

---------

Co-authored-by: shivammittal274 <mittal.shivam103@gmail.com>
Co-authored-by: shivammittal274 <56757235+shivammittal274@users.noreply.github.com>
2026-02-23 10:36:08 -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 Sonti
a31056f9f1 chore: bump server version 2026-02-06 13:25:32 -08:00
Nikhil Sonti
561466c51a chore: bump server version 2026-01-31 16:34:11 -08:00
Nikhil Sonti
b4d0a53f8f chore: bump server version 2026-01-30 10:00:35 -08:00
Nikhil Sonti
ecee03cb55 chore: bump server version 2026-01-27 11:27:25 -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
Nikhil Sonti
e83af388f2 chore: bump server version 2026-01-20 17:24:21 -08:00
Nikhil Sonti
8499346d69 chore: bump server version 2026-01-20 14:29:53 -08:00
shivammittal274
fd3cdace91 feat: new APIs for eval mode support (#250)
* feat: eval mode

* feat: eval mode
2026-01-20 13:06:58 -08:00
Nikhil Sonti
9194d3360c chore: bump server version 2026-01-19 17:50:56 -08:00
Nikhil Sonti
5bd63e89c0 chore: bump server version 2026-01-19 12:41:03 -08:00
Nikhil
eacdfaf579 feat: config + codegen env handling (#242)
* feat: better INLINE & PROD env handling

* chore: bump server version

* feat: refactor config ts better
2026-01-16 16:53:06 -08:00
Nikhil
4d77a02e9e feat: gemini supports file write and shell (#225)
* fix: tempDir is executionDir and create per session execution dir

* fix: move create() in gemini-agent to top

* fix: log(debug) directories

* fix: chat routes bug

* feat: support userSessionDir in /chat request schema

* fix: clean-up un-used types

* fix: lint errors
2026-01-14 15:26:17 -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
481161e7d9 fix: fix agent sdk from dev-depencies to dependencies 2026-01-12 11:43:49 -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 Sonti
27f8598e92 chore: browseros server version 2026-01-09 18:23:38 -08:00
Nikhil Sonti
3d7afaa0ae chore: browseros server version 2026-01-09 18:09:16 -08:00
Dani Akash
997aeb0374 ci: fix vulnerable package versions (#193)
* fix: replace bun install with bun ci in workflow files

* chore: update react router

* chore: update posthog

* fix: vulnerable package versions

* Revert "fix: replace bun install with bun ci in workflow files"

This reverts commit 2924fe496fc340555506d305e57b81cb87d45dae.
2026-01-09 20:43:16 +05:30
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