* 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>
* 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>
* 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
* 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
* 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
* 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
* 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>
* 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.
* 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